이번에는 이전에 작성했던 프로젝트의 코드를 실무처럼 리팩토링 해보고자 합니다. 해당 프로젝트의 원본은 이 링크에서 확인할 수 있습니다. 해당 프로젝트는 사용자의 로그인/회원가입/목록 조회를 제공하는 아주 심플한 기능밖에 없는 프로젝트임에도 불구하고, 리팩토링할 사항이 상당히 많이 있는 것 같습니다. 차근차근 하나씩 고쳐보도록 하겠습니다. 1. 기존 SpringBoot 프로젝트 실무처럼 리팩토링 하기 [ 1. Raw 타입은 사용하지 말자 ] 위의 예제에서는 다음과 같이 Controller에서 데이터를 반환할 때 ResponseEntity를 Raw 타입으로 반환하고 있다. @RestController @RequestMapping(value = "/error") @Log4j2 public class Error..
클린 아키텍처를 읽는데, 잘 와닿지 않거나 이해가 가지 않는 내용이 상당히 많이 있었습니다. 하지만 이 책을 읽고 얻어가는 자그만한 부분이라도 정리를 해두고자 합니다. 책에서 다루는 핵심적인 내용들이 아닌, 개인적으로 기억하고 싶은 내용들만 정의하였습니다. 1. 단일 책임 원칙(SRP, Single Responsibility Principal)의 재정의 단일 책임의 원칙은 단일 모듈은 변경의 이유가 하나, 오직 하나뿐이어야 한다는 것이다. 이것은 하나의 일만 해야한다는 원칙과는 다르다. 여기서 말하는 변경의 이유는 사용자와 이해관계자를 가리키는데, 작성한 모듈들이 여러 대상들에 의해 변경되어서는 안된다는 것이다. 이러한 내용을 책에서는 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야 한다고 SRP를 ..
2021년 신입 개발자가 되면서, 2021년에 대한 목표를 잡아보고자 합니다. 2022년 초에는 아래의 내용을 돌이켜 보면서 목표가 잘 지켜졌는지 회고하고, 새로운 목표를 잡을 계획입니다. 1. 2021년 목표 설정 [ 원리를 기반으로 한 공부 ] 2019년 후반기부터 MyBatis를 버리고 JPA라는 기술을 사용하기 시작하였다. 상당히 쿼리 중심적이고, 데이터베이스에 의존적인 기술이라 요구 사항이 변하면 그와 함께 변경해주어야 하는 것들이 많았다. 하지만 JPA를 도입하고나서 부터 Entity 중심의 개발을 하게 되었고, MyBatis의 단점을 극복할 수 있었다. 하지만 이후에 JPA를 조금 깊이 있게 공부하면서, JPA의 원리와 동작 방식을 깊이 있게 이해하지 못하고 사용했다는 것을 깨닫게 되었고, ..

2020년 11월부터 네이버 웍스(웍스 모바일 or 라인 웍스) 인턴을 시작하였고, 정직원 전환에 성공하여 2월 말부터 근무를 시작하게 되었습니다. 이번 포스팅에서는 네이버 웍스에 취업하게 된 과정을 소개하고, 취업을 준비하시는 다른 분들에게 도움을 드리고자 합니다. 1. 네이버 웍스 취업 과정 [ 1. 자기소개서 ] 자기소개서는 총 4문항이 있었고, 모두 분량의 제한은 없었습니다. 모든 내용을 공개하기에는 불가능하니 어떠한 내용들을 다루었고, 몇자 정도 작성했는지 등의 핵심적인 내용들만 다루도록 하겠습니다. (제가 자기소개서를 잘 쓰지 못하는 편이니 가볍게 참고하시는 것을 권장드립니다) 1. 자신에 대해 자유롭게 표현해 주세요. 이 항목에 대해서는 제가 목표로 하는 개발자의 모습, 개발자로서 제가 갖고..
이펙티브 자바를 읽으면서 제가 제대로 적용하지 못했던 부분 혹은 개념적으로 부족했던 부분을 정리하고, 앞으로의 개발에 적용해보고자 합니다. 1. 객체의 생성과 파괴 [ 1. 생성자 대신 정적 팩토리 메서드를 이용하라 ] 메소드 이름을 가질 수 있다. -> 명확한 이름으로 값을 생성할 수 있다. 호출 때 마다 인스턴스를 새로 생성하지 않을 수 있다. 하위 클래스를 반환하는 유연성을 얻을 수 있다. 매개 변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 정적 팩토리 메소드를 작성하는 시점에는 해당 객체의 클래스가 존재하지 않아도 된다. 정적 팩토리 메소드를 작성하는 시점에는 해당 객체의 클래스가 존재하지 않아도 된다. 하지만 정적 팩토리 메서드 역시 다음과 같은 단점이 있다. 하위 클래스로 상속하기 ..