Java

· Java/Java
예외 처리는 어떻게 하는게 좋을까, 실무에서 많은 고민중에 있다 운영을 하다보니 효율적인 예외 로그가 정말정말 중요하게 느껴진다 어떻게 하면 좋을까 고민을 하던 중 기본적인 것 부터 시작을 해보자 해서 다시 공부해본 내용을 정리해 보았다 Java 에서의 예외 종류Error시스템이 비정상적인 상황 ex) OutOfMemoryError, ThreadDeathJVM 에서 발생한다.Exception(Checked)컴파일시 에러가 잡힌다.RuntimeException(Unchecked)컴파일시 에러가 안잡힌다 -> 실행 중에 기능이 동작할 때 잡힌다. 추가적으로 네트워크 장애, 서버 다운 같은 외부 요인들은 Error 라고 생각하기엔 애매해서 나는 그냥 장애 라고 정의하는게 좋을 것 같다는 생각이 든다 0. Th..
· Java/Java
thread-safe 이란?면접 단골질문? 이 있다. 바로 StringBuffer 와 StringBuilder 에 대한 질문이다 위 질문에서 아마도 면접관들이 원하는 키워드는 바로 'thread-safe' 에 대한 의견을 듣는 것일 것이다당연하게도 남들 다 아는 똑같은 역할과 동작을 시키지만 내부 메소드가 다르고, 구현 방법이 다르고~ 이런 이야기는 좋아하지 않을 것이라고 생각한다Java ConcurrentMap 에 대한 내용을 공부하닥 thread-safe 에 관한 내용이 나와 한번 정리를 해보았다.1. thread-safe 개념Thread-safe 이란 여러 스레드가 동시에 같은 리소스(객체, 변수, 데이터 구조 등)에 접근하더라도 프로그램이 의도한 대로 정확하게 동작하는 것을 의미한다일반적으로 우리..
· Java/Java
오늘은 Java/Spring 환경에서 사용하는 실무에서 SFTP/SSH 프로토콜을 사용하기 위해서 용하는 라이브러리 인 'Jsch' 사용법을 알아보려고 한다  위 포스팅을 목적은 내가 나중에 까먹었을 떄 위 포스팅을 보고 필요한 부분을 바로바로 복붙해 가기 위함이다.그러므로 내가 자주 썻던 메소드 및 사용예시에 대해서 만 설명해볼 예정이다.. 1. JSCH 란?http://www.jcraft.com/jsch/ 위 사이트는 공식문서 이다. 공식문서만 딱 들어가봐도 꽤나 오래되 보이는 사이트가 있고 그만큼 오래된 전통 라이브러리로 판정이 된다 2018년 6월이 마지막 업데이트로 생각보다 오래된(?) 라이브러리 이다 기술이 노후되고 관리되지 않았다고 안좋고 나쁜기술은 아니라고 생각한다 무료로 쓰는 입장에서, ..
· Java/Java
평소에 Switch ~ case 구조를 잘 안사용할 것이라는 착각을 했지만 가끔 사용을 하기도 했고 JDK14 이후 변환이 있다길래 공부한 내용을 포스팅 해보려고 합니다 Java 버전이 업그레이드 됨에 따라 생기는 새로운 기능들을 사용하려고 할 때 실무 관점에서 계속 고민하게 되는 포인트가 있습니다. Java 버전이 빠르게 발전하면서 추가되고 바뀌는 문법을 적용하는게 무조건 가독성 향상 및 유지보수에 편할까? 라는 고민도을 계속합니다.요즘 클린 코드 를 공부하다보니 '실무' 와 '클린 코드' 사이에서의 뭔가 고민이 되는 포인트가 많이 있었습니다.일단 지금 회사에서는 내가 뭔가 새로운 것을 쓰면 다 설명을 해줘야 한다. 사람들한테...왜 먼저 찾아보지 않고 질문을 할까라는 생각도 하지만 일단 그런 이야기는..
들어가며개인적인 생각으로 디자인 패턴은 뭔가 코드를 공통화하고 추상화가 필요할 때 필요한 것 같다는 생각이 든다.현재 내가 겪고 실천해본 입장에서는 일단 공통 코드를 추상화하기 위해서 위 패턴을 적용해 보았다.  실무에서 비즈니스 로직을 만들다보면 'OOP' 랑은 뭔가 거리가 먼? 코드를 작성하고 있다는 생각이 든다.과연 OOP 는 무엇일까? 개념적인 부분은 알고있다.하지만 비즈니스에 내가 어떻게 적용을 하고 있고 어떻게 더 개선할 수 있을지에 대한 고민을 하고는 한다. 그리고 그 OOP 의 첫 걸음은 디자인 패턴을 조금씩 알면서 눈에 객체지향이 조금씩 눈에 들어오고 보이기 시작했다.  내가 겪은 상황은 이렇다.거래 데이터를 집계 해야하는 상황이다. 그리고 비즈니스 로직을 짜기전에 나는 항상 텍스트 및 ..
· Java/Java
들어가며Java/Spring 을 사용하던 중 항상 직면하는 문제인 Null 처리(NPE) 에 관한 이야기를 해보려고 합니다.  여러분들은 Java 에서 Null 처리를 어떻게 하고 계시나요? 코틀린을 사용하시는 분들은 정확히는 잘 모르지만 Null 처리를 자동으로 해주기 때문에 딱히 신경을 쓰지 않아도 된다고 합니다.(부럽습니다..) 하지만 Java 를 사용하시는 분들은 보통 직접 Null 처리를 해야합니다 보통 어떠한 Parameter 를 통하여 값을 전달받을 때 NPE 방지를 위해서 Null 처리를 하고는 합니다.저는 위 Parameter 값에서 null 을 체크하기 위해 보통 아래와 같은 코드를 작성하고는 했습니다if(id==null) { throw new RuntimeException("Null ..
1. 들어가며실무를 하며 느끼는게 하나가 있다.내가 생각한대로 개발 일정 및 개발 요구사항이 평온하게 진행되는 경우는 없다고 느꼈다. 그렇기에 실질적인 요구사항에 맞춰 개발하는 나로써는 항상 이러한 고민을 하게 된다. '어떻게 하면 유동적으로 코드를 변경할 수 있을까?''어차피 요구사항이 계속 추가될걸 예상하고, 어떻게 코드를 추상화시켜서 내가 덜 고생할 수 있을까?'  라는 고민이 요즘들어 많이 든다. 평소에는 내가 코드를 짜는 방식은 일단, 작동은 되게 만들어 둔 후, 천천히 리팩토링 및 고도화를 시키는게 나만의 코딩 방식이였다. 하지만...바뀌는 요구사항들 및 버려지는 내 코드들을 보며, 느끼게 되었다. 처음부터 내가 코드 설계를 쪼금만 더 잘했다면??? 덜 고생하지 않았을까? 하는 생각을 한다. ..
· Java/Java
들어가며업무를 하며 form 데이터를 서버에 보내야 할일이 생겼다.form 에서 User 가 Sign 을 하면 그 Sign 한 값을 서버로 보내야 했다.  위 사인한 값을 추출해서 서버로 보내야 했고, 서버로 값을 같이 보내기 위해 아래 방법을 사용했다.function onSignSave() { const canvas = document.getElementById('drawCanvas'); const dataUrl = canvas.toDataURL(); // 숨겨진 input 필드에 Data URL 저장 document.getElementById('signImg').value = dataUrl;} 위 코드를 사용하고 사용하여 input 폼에 Value 를 줘서 서버로 보내지게 만들었..
hyeon.q
'Java' 카테고리의 글 목록