반응형

우아한테크코스 58

[호호 스터디] DI와 서비스 로케이터 _객체지향과 디자인 패턴 Chapter 6

호호 스터디에서 Chapter 6: DI와 서비스 로케이터를 듣기 전에, 미리 책을 읽고 공부한 내용을 기록한 포스팅이다. DI와 서비스 로케이터 각 객체들을 사용하기 위해선 어떤 방법이 좋을까? 아무 생각없이 객체를 생성하고 의존하게 될 경우, Chapter 5에서 배웠던 DIP(의존 역전 원칙), OCP(개방 폐쇄 원칙), SRP(단일 책임 원칙) 등 SOLID 원칙을 어기게 되고, 변경에 유연하지 못한 코드가 만들어질 확률이 높다. 특히, 순환 의존이 발생할 경우, 요구사항이 수정되거나 변경될 경우 모든 객체의 코드를 수정해야 될 수도 있다. 이번 시간에는 DI(Dependency Injection), 서비스 로케이터를 이용한 객체 사용 방법에 대해 알아보도록 하겠다. Service Locator ..

[220323] 블랙잭 미션 피드백을 통해 배운 점

이번 블랙잭 미션이 끝났다! 확실히 자동차 경주 미션, 로또 미션에 비해선 난이도가 올라간데다가, 리뷰어님께서 굉장히 많이 핀초리 피드백을 해주셔서 포스팅할 거리도 정말 많았다. (1단계 conversation 115개, 2단계 conversation 116개로 총 200개가 넘는 피드백 ㅎㅎ) 블랙잭 미션 주 내용 - Dealer, Player의 중복 로직을 줄이기 위해 interface 또는 abstract class를 익히고 활용해보는 시간을 가졌다. - 또한, 블랙잭 결과(Blackjack, Bust, Hit 등)에 따른 다양한 상태를 객체로 만들어 사용하는 상태패턴 또한 맛볼 수 있었다. 많은 피드백 중에서 내가 인상깊게 배운 점들을 뽑아서 정리해보려 한다. 전체 피드백은 여기서 볼 수 있다. ..

[220320] 우아한테크코스 4기 6주차 후기

우테코 활동을 한지 벌써 6주나 됐다니. 정신없이 바쁘게, 그리고 크루들이랑 재밌게 보내다보니 어느새 3월도 끝이 보이기 시작했다. 5~6주차 때 있었던 일들을 기록해보겠다 :) 데일리 브리조 오프라인 만남 최근에 브리조 멤버들 중 라쿤, 토닉, 필즈, 호호를 실제로 만났다! 3월 12일 토요일에는 건대 근처 거주하는 일부 브리조 멤버들과 오프라인 모각코 시간을 가졌다. 블랙잭 1단계 코드리뷰 피드백 반영을 하거나, 스터디 공부를 하거나, 백준을 풀거나 등등 각자 자신이 해야되는 공부를 직접 만나서 진행하고 객체의 책임과 역할, 이번 미션에서 DTO의 필요성, 추상클래스와 인터페이스 활용 여부, View와 도메인 로직 관련해서 토론도 함께 할 수 있었던 좋은 기회였다. 저녁에 선약이 있어서 17시쯤에 빠..

[호호 스터디] 설계 원칙: SOLID_객체지향과 디자인 패턴 Chapter 5

호호 스터디에서 Chapter 5: 설계 원칙: SOLID를 듣기 전에, 미리 책을 읽고 공부한 내용을 기록한 포스팅이다. SOLID 원칙 어떻게 보면 귀에 딱지가 앉을 정도로 많이 들어서 너무 뻔하게 느껴질 수 있다. 하지만 막상 코드를 짤 때는 자신도 모르는 사이에 잘 지켜지지 않는 경우가 많다. 애초에, 객체의 값을 꺼내지 말고 메시지를 던지라는 것조차도 코드를 짜다보면 잘 안지켜지는 경우가 많은 것처럼 말이다. 이번 포스팅에서 SOLID 원칙을 살펴보긴 하겠지만, 제일 좋은 건 실전을 통한 많은 경험을 해보는 것인 듯하다 :) 단일 책임 원칙 (Single Responsibility Principle : SRP) 클래스는 단 한 개의 책임을 가져야 한다. 객체지향적인 코드를 짜기 위해 최대한 책임..

[호호 스터디] 재사용: 상속보단 조립_ 객체지향과 디자인 패턴 Chapter 4

호호 스터디에서 Chapter 4: 재사용: 상속보단 조립을 발표하기 전에, 미리 책을 읽고 공부한 내용을 기록한 포스팅이다. 이펙티브 자바 (아이템 18. 상속보다는 컴포지션을 사용하라) 내용과도 유사한 점이 존재한다. 상속을 통한 재사용의 단점 지난 포스팅에서 `상속이 정말 좋을까?` 라는 소주제로 글을 쓴 적이 있다. https://kth990303.tistory.com/280 [호호 스터디] 다형성과 추상 타입_ 객체지향과 디자인 패턴 Chapter 3 호호 스터디에서 Chapter 3: 다형성과 추상 타입을 발표하기 전에, 미리 책을 읽고 공부한 내용을 기록한 포스팅이다. 이펙티브 자바, 오브젝트 책에 적힌 내용과 유사한 내용도 많이 있어, 함께 읽 kth990303.tistory.com 상속을..

[220311][JAVA] 루키와 파랑과의 3인페어 협업미션 회고

이번 주에도 어김없이 페어 협업미션이 시작됐다. 나의 팀원은 누구일까 설렘반 긴장반으로 결과를 확인해보았다. 한번도 해보지 않은 3인 페어로 미션을 진행하게 되었다! 좋은건지 안좋은건지 예상이 되지 않아 조금 걱정도 됐지만, 페어들과 오프라인 일정을 잡으면서 서로 배려해주는 느낌을 받아 이번 미션도 크게 걱정없이 진행할 수 있겠다는 생각이 들었다 :) 3인페어의 장단점 3인 페어의 장점으론 보다 재밌게 소통하면서 개발할 수 있다는 점! 서로 얘기할 거리도 많고, 팀원들이 누구였는지, 자소서를 어떻게 썼는지, 평소에 어떤 개발을 해왔는지 수다떨면서 더 친해질 수 있었다. 3인페어다 보니 서로 주제가 끊임없이 많이 나오고, 대화가 끊기지 않아 더 친해질 수 있었던 듯 하다 :) 협업 마지막 날에는 파랑 크루..

[220305][JAVA] 로또 미션 리뷰 피드백을 통해 배운 점

2월 말부터 현재까지 2주동안 로또 미션을 진행했다. 로또 미션은 총 두단계로 나뉘어져 있으며, 1단계는 로또(자동) 기능을 페어와 함께 구현하는 것이고, 2단계는 로또(수동) 기능을 혼자 추가하고 리팩토링하는 과정을 거치는 것이다. 이번 미션에서 리뷰어 던의 피드백을 받으면서 배우고 느낀 점을 적어보려 한다. 전체 리뷰 피드백 및 내 코드는 여기서 볼 수 있다. https://github.com/woowacourse/java-lotto/pull/418 [2단계 - 로또(수동)] 케이(김태현) 미션 제출합니다. by kth990303 · Pull Request #418 · woowacourse/java-lotto 던, 안녕하세요! 2단계에서도 잘 부탁드립니다 :) 수동 미션을 추가하면서 변경에 유연한 코..

[호호 스터디] 다형성과 추상 타입_ 객체지향과 디자인 패턴 Chapter 3

호호 스터디에서 Chapter 3: 다형성과 추상 타입을 발표하기 전에, 미리 책을 읽고 공부한 내용을 기록한 포스팅이다. 이펙티브 자바, 오브젝트 책에 적힌 내용과 유사한 내용도 많이 있어, 함께 읽으면 좋은 시너지 효과를 낼 수 있을 듯하다! (이펙티브 자바 3판_아이템18, 19, 64) 다형성을 위한 인터페이스 다형성(Polymorphism)이란, 한 객체가 여러 가지 모습을 갖는다는 것을 의미한다. 즉, 한 객체가 여러 가지 타입을 갖는다는 것을 의미한다. 위 그림처럼 LottoGenerator에는 여러 방법이 있다. 자동으로 생성하는 방법과, 수동으로 생성하는 방법. 따라서 로또 생성 인스턴스 객체를 생성하려 할 때, 아래와 같이 두 가지 방법이 존재한다. LottoGenerator lotto..

[220225] 우아한테크코스 4기 3주차 활동 후기

앞으로 1주 간격 또는 2주 간격으로 한주가 끝날 때마다 일기처럼 활동 후기를 작성하려 한다~ 요즘은 우테코에서 하는 활동들이 많아서 1주 간격으로 작성할 듯하다. 데일리 미팅, 그리고 정말 재밌었던 데일리 회식 첫주차에는 어색한 듯 만듯한 느낌이 있었지만, 지금은 다들 친해진 데일리 미팅 크루들! 아침에 10시부터 30분동안 데일리 미팅을 진행하는데, 처음에는 데일리 미팅 코치(선생님이라 생각하면 된다) 브리가 주도하는 데일리 미팅이었지만, 지금은 다같이 주도하는 데일리 미팅으로 바뀌기 시작했다. 수요일에 라쿤이 데일리 마스터로 주도할 때, ppt를 정성껏 만들어서 미팅 퀄리티를 엄청나게 높여놓았다. 라쿤의 주제는 밸런스 게임이었는데, 고양이 vs 강아지, 산 vs 바다, 후라이드치킨 vs 양념치킨과 ..

[220225][JAVA] 크리스와 페어 협업미션을 통해 배운 점 (로또(자동) 미션)

로또 1단계 미션을 크리스와 함께 진행하였다. 크리스는 보이는 라디오에서도 나와 같이 활동했고, 회식도 함께 진행한 덕에 서로 편하게 소통할 수 있었으며, 거주지도 서로 가까워 페어 미션동안 오프라인으로 만나면서 진행하였다. 이번 시간에도 페어에게 정말 많은 걸 배울 수 있었고, 크리스에게 java 개념들과 특정 구조에 대한 이점을 배울 수 있었다 :) 정규식 성능 개선 그 동안은 정규식 String만 따로 위에 빼준 다음에, String.matches()로 정규식을 비교해주었다. 그러나, String.matches()를 이용할 경우 아래와 같은 작업이 발생한다. matches 과정마다 Pattern.compile이 발생하는데, 이 때 Pattern.compile이 컴파일 과정에서 성능을 좀 많이 잡아먹..

반응형