나를 기록하다
article thumbnail
[우아한테크코스 웹 백엔드] 프리코스 1주차 - 숫자 야구

배우는 걸 좋아하지만 비전공자로써 함께 공부할 동료나 멘토가 없어서 어려움이 많았다. 학교는 본래의 전공으로 졸업을 했기에 부트캠프나 국비학원을 알아봤는데 강의에 대한 후기가 너무 갈려서 제대로 된 커리큘럼과 동료들이 있는 곳에서 동료들과 교류하며 성장하고 싶다는 생각에 우아한테크코스를 지원하였다. 더군다나 우아한테크코스에서는 프리코스 과정을 모든 지원자들에게 참가할 자격을 주기 때문에 높은 경쟁률(대략 30대 1)에도 프리코스를 경험하고자 도전하였다. 요즘은 다른 공부를 제쳐두고 프리코스에 몰입하느라 블로그 글과 알고리즘 문제는 제쳐두고 설계와 구현에 집중하고 있다. 이제부터 프리코스를 진행하며 매주 회고록을 작성하려 한다. 이 과정을 통해 객체지향적 사고를 할 수 있고 설계를 배우고자 한다. 1주차 ..

article thumbnail
[Java] private 생성자의 사용 이유, final, 자바 메모리 구조
Java 2023. 10. 25. 15:00

sonarlint의 코드리뷰 프리코스를 진행하면서 내 코드를 자동으로 리뷰해주는 IDE 확장 플러그인인 sonarlint의 도움을 많이 받았다. sonarlint는 코드에 문제가 있다고 판단되면 해당 코드에 물결표 밑줄 표시를 하고 마우스를 가져가면 해당 코드의 문제점에 대해서 설명해준다. 아래에 출력을 담당하는 GameOutput 클래스의 클래스명에 밑줄로 경고를 하는데 이유가 뭘까? 위 사진처럼 출력을 담당하는 기능을 하는 GameOutput에 따로 생성자를 만들지 않고 메서드들을 static으로 선언하여 외부 클래스에서도 GameOutput.{메서드명}과 같이 사용할 수 있도록 하였다. 이유 그런데 여기서 왜 이슈가 발생했을까? 이유는 아래에 sonarlint가 자세하게 설명해준다. 설명 설명은 다..

article thumbnail
[Effective Java 3/E] 2. 생성자에 매개변수가 많다면 빌더를 고려하라
Review/Book 2023. 10. 24. 19:00

정적 팩토리와 생성자에 선택적 매개변수가 많을 때 적절히 대응하기 어렵다 정적 팩토리 메서드와 생성자의 공통된 제약 → 선택적 매개변수가 많을 때 적절히 대응하기 어려움 [예시] 식품 포장의 영양정보를 표현하는 클래스 영양정보 필수항목: 1회 내용량, 총 n회 제공량, 1회 제공량당 칼로리 등 선택항목: 총 지방, 트랜스지방, 포화지방, 콜레스테롤, 나트륨 등 → 대부분 제품은 이 선택 항목 중 대다수의 값이 0 → 프로그래머들은 이럴 때 점층적 생성자 패턴(telescoping constructor pattern)을 즐겨 사용했다. 점층적 생성자 패턴이란? 필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성자, 선택 매개변수를 2개까지 받는 생성자, ・・・ 형태로 선택 매개변..

article thumbnail
[Effective Java 3/E] 1. 생성자 대신 정적 팩토리 메서드를 고려하라
Review/Book 2023. 10. 23. 18:00

정적 팩토리 메서드(static factory method) public 생성자 - 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단 클래스는 생성자와 별도로 그 클래스의 인스턴스를 반환하는 정적 팩터리 메서드 제공 가능 [예시] boolean 기본 타입의 박싱 클래스(boxed class)인 Boolean에서 발췌한 간단한 예 기본 타입인 boolean에서 값을 받아 Boolean 객체 참조로 변환 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 여기서 나오는 정적 팩토리 메서드는 디자인 패턴에서의 팩토리 메서드(Factory Method)와 다르다. 클래스가 클라이언트에 public 생성자 대신..

article thumbnail
[객체지향의 사실과 오해] 7장. 함께 모으기
Review/Book 2023. 10. 15. 01:30

코드와 모델을 밀접하게 연관시키는 것은 코드에 의미를 부여하고 모델을 적절하게 한다. - 에릭 에반스 객체지향 설계 안에 존재하는 세 가지 상호 연관된 관점 개념 관점(Conceptual Perspective) 설계는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현 도메인은 사용자들이 관심을 가지고 있는 특정 분야나 주제를 말하며 소프트웨어는 도메인에 존재하는 문제를 해결하기 위해 개발 사용자가 도메인을 바라보는 관점을 반영 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심 명세 관점(Specification Perspective) 사용자의 영역인 도메인의 개념이 아니라 실제로 개발자의 영역인 소프트웨어 안에서 살아 숨쉬는 객체들의 책임에 초점 객체의 인터페이스를 바라보게 됨 프로그..

article thumbnail
[테코톡] MVC 패턴
Review/Techotalk 2023. 10. 14. 21:00

자바 MVC 패턴을 공부하면서 저번에 시청한 적이 있지만 정리를 하지 않았기에 복습 겸 우아한테크 유튜브에 올라와있는 테코톡 MVC 패턴을 시청하고 정리하려 한다. 테코톡엔 양질의 자료가 많으니 CS에 관심이 있다면 듣는 것을 추천한다. MVC는 왜 생겨난걸까? 과거의 프로그래머들은 수많은 프로그램을 만들었다. 코드가 많아질수록 복잡해져 코드가 파악하기 힘들고 기능을 수정할 때마다 대부분의 코드를 갈아엎어야 하는 경우가 많았다. 즉, 유지보수가 어려웠다. 계속 코드를 짜다보니, 특정 코드 구성에서 유지보수의 편리성을 발견했다. 이러한 규칙성을 조금씩 찾고 패턴을 공식처럼 만들어 논문으로 발표하게 됐고, 많은 프로그래머들의 사랑을 받아 오늘날의 MVC 패턴이 생겨나게 되었다. MVC는 유지보수가 편해지는 ..

profile on loading

Loading...