본문 바로가기

전체 글38

Git - 커밋 메시지 컨벤션 Git - Commit Message Convention 커밋 메시지를 작성할 때는 원칙을 정하고 일관성 있게 작성해야 한다. 깃을 통한 협업을 진행할 때, 커밋 메시지를 보고 팀원들끼리 무슨 작업을 했는지 명확하게 확인할 수 있다면 보다 효율적인 협업이 이루어 질 수 있다. 아래는 유다시티의 커밋 메시지 스타일 가이드를 참조한 내용이다. 커밋 메시지 구조 커밋 메시지는 빈 줄로 구분된 세 부분으로 구성됩니다. 제목, 선택적인 본문 및 선택적인 바닥글입니다. 레이아웃은 아래와 같습니다. type: Subject body footer제목은 메시지의 유형과 제목으로 구성됩니다. 유형 feat: 새로운기능 fix: 버그수정 docs: 문서 변경 사항 style: 서식 지정, 세미콜론 누락 등 코드 변경 없음 .. 2021. 7. 28.
[SpringBoot With Aws] Spring 웹 계층 Spring의 3layer 계층 간단하게 각 영역을 소개하자면 다음과 같습니다. Web Layer 흔히 사용하는 @Controller와 JSP/Freemarker 등의 뷰 템플릿 영역입니다. 이외에도 @Filete, 인터셉터, @ControllerAdvice 등 외부 요청과 응답에 대한 전반적인 영역을 이야기합니다. Service Layer @Service에 사용되는 서비스 영역입니다. 일반적으로 Controller와 Dao의 중간 영역에서 사용됩니다. @Transactional이 사용되어야 하는 영역이기도 합니다. Repository Layer Database와 같이 데이터 저장소에 접근하는 영역입니다. Dtos Dto는 계층간에 데이터 교환을 위한 객체를 이야기하며 Dtos는 이들의 영역을 이야기합니.. 2021. 7. 23.
[SpringBoot With Aws] JUnit 단위 테스트 1. JUnit 단위테스트? 먼저, TDD와 단위 테스트는 다른 이야기입니다. 단위 테스트는 TDD의 첫번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 이야기합니다. 순수하게 테스트 코드를 작성하는 것을 이야기합니다. 테스트 코드는 왜 작성해야 할까요? 위키피디아에서는 다음을 이야기 합니다. 단위 테스트는 개발단계 초기에 문제를 발견하게 도와줍니다. 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있습니다. 단위 테스트는 기능에 대한 불확실성을 감소시킬 수 있습니다. 단위 테스트는 시스템에 대한 실제 문서를 제공합니다. 즉, 단위 테스트 자체가 문서로 사용할 수 있습니다. 또한, 이 책의 저자이신 이동욱님은 본인의 경험을 토.. 2021. 7. 22.
WIL 2021/07/18 6주차 회고 1. 재정비 기간 회고 첫번째로, 스스로 자신감..?이 많이 생긴 주차였다. 스스로 프로젝트를 구현 했다는것과 잘 알지 못했던 예외처리, Service에서의 로직 구현을 직접 해보면서 완성했다는것으로 자신감이 생겼다..! 2. 클론코딩 주차 새로운 조원분들을 만나고 새로운 클론코딩을 시작했다. 클론의 목표는 '핀터레스트' 사이트. 다른 백엔드분들과 같이 API를 설계했다. 확실히 재정비기간동안 혼자 공부했던것들이 API 설계할때도 도움이 많이 됐다. 나는 재정비 기간동안 공부했던것을 테스트 해보기 위해서, 스스로 생각하기에 제일 어렵다고 생각되는 User부분을 담당했다. 시큐리티와 JWT를 같이 사용하는 부분에서 많이 고생했다. 많은 자료들을 찾아보며 직접 구현했지만 이해 가지 않는 로직이.. 2021. 7. 18.
Optional<T> 는 무엇인가..? Optional는 지네릭 클래스로 'T타입의 객체'를 감싸는 래퍼 클래스이다. 그래서 Optional 타입의 객체에는 모든 타입의 참조변수를 담을 수 있다. public final class Optional{ private final T value; //T타입의 참조변수 ... } 최종 연산의 결과를 그냥 반환하는 게 아니라 Optional 객체에 담아서 반환하는 것이다.이처럼 객체에 담아서 반환을 하면, 반환된 결과가 null인지 매번 if 문으로 체크하는 대신 Optional에 정의된 메서트를 통해서 간단히 처리할 수 있다. 이제 Null체크를 위한 if문 없이도 NullPointerException이 발생하지 않는 보다 간결하고 안전한 코드를 작성하는 것이 가능해진 것이다. Optio.. 2021. 7. 14.
@Controller 와 @RestController의 차이 1. @Controller [Controller - View] 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. 아래와 같은 과정을 통해 Spring MVC Container는 Client의 요청으로부터 View를 반환합니다. Client는 URI 형식으로 웹 서비스에 요청을 보낸다. Mapping되는 Handler와 그 Type을 찾는 DispatcherServlet이 요청을 인터셉트한다. Controller가 요청을 처리한 후에 응답을 DispatcherServlet 으로 반환하고, DispatcherServlet은 View를 사용자에게 반환한다. @Controller가 View를 반환하기 위해서는 ViewResolver가 사용되며, ViewR.. 2021. 7. 13.