서론 [Clean Code 책 소개] IT 개발자들에게 거의 필수 교과서라고 할 수 있는 책이다. 코딩에 관심 좀 있다하면 다들 한 권씩은 소장하고 있는 것 같다. 거의 바이블인듯 (아닐 수도 있음 ㅎ) 나도 그 중에 한명이 되어보고자 책을 구매했지만 바로 초심 잃고 이제서야 읽기 시작함 ㅎㅎ 이 책을 공부하면서 얻은 중요한 것들과 내 생각을 정리해보고자 한다. 1장. 깨끗한 코드 협업을 하면서 다른 사람이 쓴 코드를 보면, 간혹 이게 뭔말인가 싶은 코드들이 있다. 또는 '굳이...? 이렇게...?' 라는 생각이 들 때가 있을 것이다. 물론 나도 예외는 아니다. 지금도 흑역사로 남은 코드들을 들킬 때면 머쓱머쓱 해진다. 나쁜 코드 귀찮아서, 혹은 지금 당장 돌아가기만 하면 되니까 라는 마음으로 코드를 짜..
의존성 추가 Maven 스프링 AOP를 사용하기 위해서는 아래와 같이 의존성을 추가해야 한다. org.springframework.boot spring-boot-starter-aop 하지만!!!!!! 나는 더 많은 조인포인트 사용을 위해 AspectJ를 활용할 것이다. (이에 대해 자세한 내용은 다음 포스팅에..
AOP (Aspect Oriented Programming) AOP는 Aspect Oriented Programming의 약자이며 관점 지향 프로그래밍이라고 한다. 로직을 핵심적인 관점 및 부가적인 관점으로 나눠 그 관점(Aspect)을 기준으로 각각 모듈화하는 개발 방법이다. 핵심적인 관점은 핵심 비즈니스 로직을 말하며, 부가적인 관점은 어플리케이션에서 공통적으로 발생하는 부가적인 작업을 의미한다. 이러한 부가 작업에는 로깅, 트랜잭션 관리, 보안, 캐싱 등 다양한 측면을 포함할 수 있다. 개발을 진행하다 보면 반복해서 사용해야 하는 코드들이 있다. 아래 예시에서 사용자 정보를 불러오는 UserService와 메일 정보를 불러오는 MailService는 핵심 기능 관점에서는 공통 요소가 없다. 하지만 ..
파이프란 보통 애플리케이션이 관리하는 데이터 또는 서버에서 받아오는 데이터는 사용자들에게 실생활에 익숙한 형태가 아닐 수 있다. 예를 들면, 날짜 데이터 같은 경우 Date 함수가 리턴하는 인스턴스를 문자열화하면 아래와 같다. const today = new Date(); console.log(today.toString()); // Thu May 25 2023 14:00:00 GMT+0900 (KST) 딱보기에도 사용자가 읽기 쉬운 형태는 아니다. 이 때 데이터 자체를 변경하는 것은 다른 side effect가 있을 수 있으므로 화면에 표시하는 형식만 변경하고 싶을 때 사용하는 것이 Pipe 이다. 파이프를 사용하면 마치 스타일 정의하듯 HTML에서 바로 출력 변환이 가능하다. 사용법 사용법은 간단하다...
문제상황 { "seq": "01", "postDate": "20230524", "mCodeName": "어쩌고" } 위와 같은 데이터(예시)를 @RequestBody로 요청을 받았는데 DTO에 자꾸 null 값이 들어오는 것을 확인했다. 아래는 DTO @Data @AllArgsConstructor @NoArgsConstructor public class TistoryDTO { String seq; String postDate; String mCodeName; } 문제가 되는 파라미터는 mCodeName이다. 이 데이터가 자꾸 null로 들어와서 날 화나게 만듦;; null 안 보냈다고 ㅡㅡ 반대로 쿼리에서 M_CODE_NAME이라는 컬럼을 select 해 왔을 때도 제대로 맵핑이 안됐다. 카멜 케이스 지..