본문 바로가기

전체 글59

[Effective Java] 생성자에 매개변수가 많다면 빌더를 고려하라 실제로, 프로젝트를 진행하면서 클래스의 매개변수가 많은 경우 빌더를 즐겨 사용했다. 그리고 책에서 나온것 같이 setter를 사용하여 불변식을 지키지 못하는 상황을 방지할 수 있는 점, 그리고 생성자에 값을 잘못 넣을 가능성을 없앨 수 있다는 점에서 정말 좋다고 생각한다. 하지만 그 전에 생각해야 할 부분이 있다. 애초에 필드가 왜 많아야 하는가? SRP를 제대로 준수했다면 필드가 많을 필요가 없다. 만일 파사드 패턴과 같은 상황으로 인해 필드가 많아지는 경우는 어떡하는가? 생각해보면 이런 경우는 필드가 또 다른 객체로 이루어져 있다. 객체 필드의 의미와 타입의 중복이 없고 이는 생성자를 통해 객체를 생성하더라도 잘못된 데이터를 넣을 가능성 낮출 수 있으며 정합성 또한 보장 가능해진다. 내가 빌더를 주로.. 2022. 1. 3.
조금 늦게 작성해보는 2021년 회고 2021년이 지나고 이젠 2022년이 찾아왔다. 나에게 있어서 정말 많은 임팩트가 있었던 2021년에 대한 스스로의 회고를 진행해본다. 무슨 일이 있었는가? 1. 졸업 2년간의 석사 과정을 마치고 대학원 졸업을 하게 되었다. 재미있기도 했고, 힘들기도 했고 다산 다난했던 석사 생활이다. 석사때 공부했던 내용들은 지금와서는 거의 사용하지 않는다. 그렇다고 석사 생활이 의미없지는 않았다. 기술에 대한 깊이있는 탐구를 하는 법, 논문을 읽는 법 등 많은것을 배웠고 아이러니 하게도 이러한 활동들이 개발자로서의 꿈을 더욱 키워주는 매개체가 되었다. 그리고, 우아한테크코스 지원의 촉매제가 되었다. 2. 머리를 길러보았다. 태어나서 처음으로 머리를 길러보았다. 연말에는 어깨까지 머리가 내려왔고 느낀점은. 긴 머리는 .. 2022. 1. 2.
유스콘 2021 회고 유스콘 2021 회고 What is the YOUTHCON? 유스콘은 👨‍🎓 젊은 개발자와 👨‍🏫 선배 개발자가 함께 가치 있는 기술에 관한 정보와 경험을 공유하는 콘퍼런스입니다. https://frost-witch-afb.notion.site/YOUTHCON-21-365e94c3df3443e5b1322520a8b1a2ef YOUTHCON'21 유쾌한 스프링방에서 탄생한 유스콘은 👨‍🎓 젊은 개발자와 👨‍🏫 선배 개발자가 함께 가치 있는 기술에 관한 정보와 경험을 공유하는 콘퍼런스입니다. 여기서 발표하는 사람들을 잘 기억 www.notion.so 유스콘은 일종의 기술 및 경험을 공유하는 컨퍼런스라고 생각하면 좋다. 박재성(Jason)님이 운영하는 유쾌한 스프링방에서 시작되었다. How i joined 아.. 2021. 12. 30.
[Effective Java] 생성자 대신 정적 팩터리 메서드를 고려하라. 장점 이름을 가질 수 있다. 좋은 장점이라고 생각한다. 생성자의 매개변수만으로는 생성되는 객체의 의미를 파악하기 힘든 경우가 분명 있다. 하지만 이름을 가지면 좋다는 이유로 가끔 무분별하게 기본적인 생성자 호출로도 가능한 로직을 정적 팩터리 메서드를 사용하는 경우가 있다. 예를들면 아래와 같은 경우다. public class Main { public static void main(String[] args) { Calculator calc = Calculator.createNewCalculator(); ... } } public class Calculator { ... public static Calculator createNewCalculator() { return new Calculator(); } ... 2021. 12. 16.
[Effective Java] 시작. 이전에도 한번 읽었던 책이지만, 이때보다 조금이라도 더 성장한 지금. 내가 느끼는 이팩티브 자바에 대한 개인적인 감상에 대해서 적고자 한다. 단순히 책의 내용을 정리하는게 아닌, 내용에 대한 나의 생각, 공감, 반론을 적는것을 목표로 하고싶다. 2021. 12. 16.
Spring Slack Alarm Logger 만들기 우아한테크코스에서 진행하고 있는 프로젝트에서는, 프로젝트의 에러에 빠르게 대처하기 위해 Error가 발생할 경우 슬랙으로 에러 메세지를 전송합니다. 이 방식은 logback에 의존하며, slack appender라는 오픈소스를 이용하여 구현하고 있습니다. 하지만 이 방식에는 몇가지 문제가 있었는데요, 슬랙에 에러메세지가 날아오기는 하지만 어떤 상황에서 발생하는 에러인지 전혀 파악이 안된다는 점이었습니다. 이러한 문제상황에 우리의 영원한 리더 브라운이 위와같은 요구사항을 주셨고 제가 덥썩 물어서 해결해보도록 하였습니다. SlackAppender 분석 가장 먼저 제가 한 일은 기존의 SlackAppender를 분석하는 일이었습니다. 어떤 방식으로 로그를 전송하는지는 알아봐야 하니까요..? 그래서 소스를 까본.. 2021. 10. 30.