본문 바로가기

전체 글

(192)
클린코드 1장 깨끗한 코드 좋은 코드는 어떤 코드인가 읽기쉬운코드, 한가지 기능만 하는 코드, 중복이 없는코드.... 가장 와닿은 의견은 짐작한 기능을 그대로 이루는 코드이다. 너무 당연하고 명백해 심오한 발언이라 여겨지지 않는다. 짐작하는 기능을 수행하는것이 당연하지 않던가? 하지만 짐작한 기능을 그대로 수행하는 모듈을 마지막으로 접한게 언제였던가? 코드의 기능을 살펴보려면 전체 시스템부터 논리를 찾으려 애썼던 기억에 고개를 끄덕이게 된다. 우리는 좋은 코드를 작성하는데에는 아키텍처나 프레임워크, 언어 등 고차원적인 요소가 품질을 결정한다고 생각하지만, 이 책에서는 단순한 들여쓰기 스타일로 가치를 만들어내고 사소한 것 하나에서 깨끗한 코드가 탄생한다고 알려주고 있다. 클린코드는 이를 통해 우리가 우아하고 직관적인 코드를 작성할 ..
[MyBatis] ResultHandler에 대해 . ResultHandler는 MyBatis에서 제공하는 인터페이스로, SQL 쿼리의 결과를 자바 객체로 변환하는 과정을 사용자가 직접 제어할 수 있게 해줍니다. handleResult 메소드를 오버라이딩하여, 원하는 방식으로 결과를 매핑하거나 추가적인 로직을 적용할 수 있습니다. 이 두 요소의 조합을 통해, 데이터베이스에서 쿼리 결과를 더 유연하고 효율적으로 다룰 수 있게 됩니다. 필요성 대용량 데이터 처리 일반적인 MyBatis의 쿼리 실행 방식은 1건씩 호출하기에 대용량 데이터에 비효율적입니다. 그러나 ResultHandler를 사용하면, 결과 셋이 DB에서 한 번에 하나씩 메모리에 로드되기 때문에 대용량 데이터도 효율적으로 처리할 수 있습니다. 작동 원리 내부 구조 ResultHandler는 ha..
커밋컨벤션 feat : 새로운 기능 추가 fix : 버그 수정 docs : 문서의 수정 style : (코드의 수정 없이) 스타일(style)만 변경(들여쓰기 같은 포맷이나 세미콜론을 빼먹은 경우) refactor : 코드를 리펙토링 test : Test 관련한 코드의 추가, 수정 chore : (코드의 수정 없이) 설정을 변경
OOP, AOP 리팩터링 작업 예시) 결제창 호출 메소드 컨트롤러, 서비스 역할이 혼동되어 유효성검증과, 각종 변수와 메소드들이 마구잡이로 선언되어있는 소스 역할분리하여 필요한 것만 남기고, 나머지는 다 서비스 레이어로 불필요한 메소드 제거, 검증로직은 모두 CustomException 통해 모듈화 필드명 안맞는것 고치기엔 리스크가 커서 스킵했다. try catch는 리턴 타입 구분으로 못없앴다. 이게 최선인거같은데 ex) before, after
WAS 최적화와 트러블슈팅 싸이웰시스템 웨비나 정리 노션 이미지 복사가 안되서 링크로 첨부 세션1 ) WAS 전반 내용 1. WAS(JAVA)를 사용하기 앞서 - JVM과 JDK 개념과 이해 - JDK 버전별 호환성 - JDK Option 2. GC - GC 동작방식 - GC 의 종류 - GC 트러블슈팅 - GC 모니터링 - APM 3. JAVA_OPTION - standard options - non standard / advanced option 4. 권장 Setting - 서버 세팅 - Thread Pool 세팅 - Data Source 권장설정 - GC 권장 설정 https://pastoral-orangutan-b4e.notion.site/WAS-1-2744a09ec0664d2eaf906966c24a9a6e WAS사용자교육..
3말4초 봄맞이 한옥마을 귀여운 뱃지 샀으 새기타 장만했으여 갔다오는 길 꽃구경~ 선임 결혼식도 갔따오구 올만에 군대선임들만나서 놀았음 친구 일하는 헬스장 운동하러갔으요 부쩍 커진거 같은 몸(아님 말구) 합주하고 한강공원가서 놀았으요
리팩터링요소 front dto 리팩토링패키지 정리 (도메인 별, rest, template 분리), mapper → dto기능(도메인) 별 mapper, service, controller 메소드 이동컨트롤러 로직 제거유효성 로직 공통화불필요한 유효성 로직 정리 및 공통처리에러로직 공통처리서비스엔 비즈니스로직만front 응답 인자정리미사용 코드 정리CRUD 네이밍 룰무수히 쏟아지는 졸음과 에러 그리고 개발 요청
[DEVIEW2023] 런타임 데드 코드 분석 도구 Scavenger *DEVIEW2023에서 열린 네이버 플랫폼 랩스의 김태연, 권오준 개발자님의 강연을 그대로 개인 학습을 위해 정리한 포스트입니다. https://youtu.be/qE7HY7Y-5vs *Scavenger는 DEVIEW2023에서 네이버가 공개한 오픈소스 프로젝트입니다. 1. Dead Code란? 실행되지 않는 코드를 뜻합니다. (Unreachable) 아래는 예시 소스입니다. final int age = 25; if (age>20){ System.out.println("Okay"); } else { System.out.println("Nope"); } 위 조건문에서 변수 age는 else로 분기될 수 없으므로 영영 사용되지 않는 else는 Dead Code입니다. 간단한 예시를 들었지만 소스 상에서 사용..