안녕하세요, 6월 3일부터 6월 24일까지 3주의 기간동안 논산훈련소 훈련소 생활을 지낸 망나니개발자입니다. 많은 분들이 사회복무요원이나 산업기능요원/전문연구요원 또는 공중보건의사 등으로 훈련소를 다녀오는데, 이와 관련된 내용을 포스팅해보고자 합니다. 1. 훈련소 준비 및 준비물 [ 머리 길이 ] 아마 가장 큰 관심사가 머리 길이가 아닐까 생각합니다. 우선 훈련병의 머리 길이 규정은 30mm이지만, 저는 20mm로 머리를 밀고 갔습니다. 왜냐하면 30mm로 밀면 결국 머리를 잘린다는 얘기를 들었기 때문입니다. 하지만 저보다 머리가 긴 사람들도 많이 있었고, 여러 차례 머리가 긴 훈련병들의 머리를 자를 것이라고 공지 및 검사를 하였지만 결국 머리를 밀지 않았습니다. (물론 엄청 긴 훈련병들의 경우 밀렸지만..
이 내용은 토비의 스프링 1권의 797부터 시작하는 내용을 참고하며 작성하였습니다. 1. AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)의 이해 [ AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)의 등장 ] AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)를 이해하기 위해서는 어드바이스(Advice), 포인트컷(PointCut)를 이해해야 한다. 어드바이스(Advice): 타겟 오브젝트에 적용하는 부가 기능을 담은 오브젝트 포인트컷(PointCut): 메소드 선정 알고리즘을 담은 오브젝트 부가기능은 핵심기능과 섞이면 설계와 코드가 지저분해지기 때문에 부가기능을 독립적인 모듈로 만들고자 하는 필요성이 대두되..
이 내용은 토비의 스프링 1권의 797부터 시작하는 내용을 참고하며 작성하였습니다. 1. 도메인 주도 설계 및 개발(도메인 객체 중심 개발) [ 도메인 객체 중심 개발 ] 도메인 객체 중심 아키텍처란 도메인 모델을 반영하는 객체를 만들어두고, 그것을 중심으로 개발하는 아키텍처를 의미한다. 도메인 모델은 DB의 엔티티 설계에도 반영되기 때문에, DB의 엔티티와 유사할 확률이 높다. 물론 DB에는 없고 비즈니스 로직 상에서만 존재하는 모델도 있기 때문에 항상 일치하지는 않을 수 있다. 이렇게 객체를 만들어두고 그 안에 정보를 담아서 각 계층 사이에 전달하게 만드는 것이 도메인 객체 중심 아키텍처이다. 예를 들어 어떤 제품과 카테고리가 있을 때 다음과 같은 도메인 객체가 존재할 수 있다. public clas..
Spring을 제대로 이용하기 위해서는 Spring이 갖는 기본 개념과 철학을 이해해야 한다. 이번에는 Spring에 입문하는 사람들을 위해 Spring에 대해 이해할 수 있는 내용을 작성해보고자 한다. 1. 올바른 단위 테스트 작성 - 독립적인 테스트 [ 기존의 단위 테스트 - 의존적인 테스트 ] 얘기해보고자 하는 상황은 public 메소드가 다른 public 메소드를 이용하는 경우이다. 예를 들어 다음과 같은 메일 전송 서비스 클래스가 있다고 하자. sendMailIfRegisteredEmail 함수는 isEmailRegistered를 호출하여 사용하고 있다. @Service @RequiredArgsConstructor public class MailService { private final Mail..
Spring을 제대로 이용하기 위해서는 Spring이 갖는 기본 개념과 철학을 이해해야 한다. 이번에는 Spring에 입문하는 사람들을 위해 Spring에 대해 이해할 수 있는 내용을 작성해보고자 한다. 1. XML 설정보다 Java 설정을 사용해야 하는 이유 [ Java 설정의 장점 ] Spring 프레임워크는 3.1부터 기존의 XML 설정에 더해 Java 기반의 설정까지 지원하기 시작하였다. 초기에는 XML로 설정들을 관리할 것을 권하였지만, 이제는 다음과 같은 이유로 Java 기반의 설정을 권장하고 있다. 더 많은 정보를 얻을 수 있다. 설정의 변경이 용이하다. 컴파일 에러를 얻을 수 있다. 1. 더 많은 정보를 얻을 수 있다. @Component public class UserFactory { }..