본문 바로가기
  • 컴공생의 공부 일기
  • 공부보단 일기에 가까운 것 같은
  • 블로그
💾 Backend/우아한 테크코스-프리코스

🪐우테코 프리코스🪐 - 4주차🚀

by 정람지 2023. 11. 10.

마지막..! 어느새

끝까지 화이팅


🚀 메일 🚀

클래스의 역할과 책임을 생각해 보고 클래스 작성 시 도메인 로직에 집중하는 방향으로 구현UI는 도메인 로직과 분리하는 방향으로 생각

1. 클래스(객체)를 분리하는 연습✅
2. 도메인 로직에 대한 단위 테스트를 작성하는 연습✅

 

이번 주 차부터는 새로운 미션 제출 방법이 적용됩니다. 비공개 저장소를 생성해 제출하는 방식이며, 자세한 내용은 아래 미션 제출 방법과 첨부된 제출 방법 문서를 잘 읽어주세요. 특히, woowa-course 계정을 collaborator로 초대하는 부분을 유심히 읽고 수행해 주세요.

 프리코스 과제 가이드 - 비공개 저장소를 참고해 제출⭕️

 

프리코스 과제 가이드 - 비공개 저장소

비공개 저장소 제출 방식 과제 가이드 진행 가이드 1. 과제 저장소 접속 2. 본인의 비공개 저장소 생성하기 과제 저장소에서 `Use this template` -> `Create a new repository`를 클릭하여 본인 계정 하위에 새

docs.google.com


🚀 2주차 피드백 - 우테코🚀

 

[6기] 프리코스 3주 차 웹 백엔드 피드백

3주 차 공통 피드백 함수(메서드) 라인에 대한 기준 프로그래밍 요구사항을 보면 함수 15라인으로 제한하는 요구사항이 있다. 이 기준은 main() 함수에도 해당된다. 공백 라인도 한 라인에 해당한

docs.google.com

 

-  main 함수도 15줄 제한 지키기 유의✅

- 발생할 수 있는 예외 사항에 대해 고민한 후 예외 처리하기✅

- 예외 사항에 대한 케이스도 테스트케이스 짜기 ✅

- final 키워드로 불변 값 선언하기✅

- static final 대신 enum 사용하기✅

- private 상태 접근 제한하기✅

- 객체를 객체스럽게 사용하기 (데이터를 가지는 객체에게서 데이터를 가져오기보다는 데이터에 대한 메세지를 던지도록 구현)✅

- getter를 사용하는 대신 객체에 메세지를 보내자✅

- 필드(인스턴스 변수)를 줄이기 위해 노력하기✅

- 테스트 코드도 깔끔하게 만들기✅

- 테스트를 위한 코드와 구현 코드의 분리✅


🚀 2주차 피드백 - 지원자분들 코드리뷰 🚀

하/... 저번 과제 너무 급박해서 이럴 줄 알았다.. 아! 그리고!! 지하철에서 UML 그려놓고 커밋햇는데 푸쉬 안해서 적용이 안 됐다!!바보야!!!ㅡㅇ 어어엉으
고고ㅗ고ㅗ곡

https://github.com/jongwooo/dotfiles/blob/main/.gitconfig#L10

아 아ㅇ아 나도 다른 분들 코드 보고 리뷰하면서 배우고 싶은데ㅜㅜ 아 시간이없다ㅜ힝


🚀 공부 🚀

Stream 공부하기

 

🛸 일급 컬렉션 (First Class Collection)

이거 보고 정리 일급 컬렉션 (First Class Collection)의 소개와 써야할 이유 최근 클린코드 & TDD 강의의 리뷰어로 참가하면서 많은 분들이 공통적으로 어려워 하는 개념 한가지를 발견하게 되었습니다

junggoldchae-coding.tistory.com

https://tecoble.techcourse.co.kr/post/2020-04-28-ask-instead-of-getter/

 

getter를 사용하는 대신 객체에 메시지를 보내자

getter는 멤버변수의 값을 호출하는 메소드이고, setter는 멤버변수의 값을 변경시키는 메소드이다. 자바 빈 설계 규약에 따르면 자바 빈 클래스 설계 시, 클래스의 멤버변수의 접근제어자는 private

tecoble.techcourse.co.kr

https://tecoble.techcourse.co.kr/post/2020-05-07-appropriate_method_for_test_by_parameter/

 

메서드 시그니처를 수정하여 테스트하기 좋은 메서드로 만들기

tecoble.techcourse.co.kr


🚀 체크사항 🚀 ✅

- 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 commit하는 방식✅

- 클래스의 역할과 책임을 생각해 보고 클래스 작성 시 도메인 로직에 집중하는 방향으로 구현✅

- UI는 도메인 로직과 분리하는 방향으로 생각✅

 

-  main 브랜치에 커밋햇지✅

 

- MVC 패턴 적용하기✅

- 일급컬렉션 적용하기✅

- getter 사용 시 Collections.unmodifiableList()와 같은 Unmodifiable Collecion을 사용해 외부 변경 막기✅

 

- 우테코 피드백 확인✅

- 코드리뷰 피드백 확인✅

 

- 기능 요구 사항 재확인✅

- 프로그래밍 요구 사항 재확인✅

- 과제 진행 요구 사항 재확인✅


🚀 구현 🚀

 

🪐우테코🪐 - 4주차 과제🔭 ..ing

 

junggoldchae-coding.tistory.com


🚀 비공개 저장소 🚀

 

 프리코스 과제 가이드 - 비공개 저장소

설정을 완료한 본인의 비공개 저장소를 로컬 환경에 clone 받아 과제를 진행합니다. 

진행한 과제는 저장소의 main 브랜치에 커밋합니다. ✅

저장소 생성시 기본적으로 main 브랜치를 사용하도록 만들어집니다. main 브랜치가 아닌 다른 이름의 브랜치에 커밋한 경우 0점 처리되니 주의해 주세요. 

굿


🚀 우테코 제출 🚀 

우아한테크코스 지원 플랫폼

 

우아한형제들의 교육 프로그램 지원하기

우아한형제들의 교육 프로그램에서 개발자들을 위해 디자인된 강의를 수강해보세요.

apply.techcourse.co.kr

안녕하세요! 정은채입니다!
이번 주차를 수행하면서 작성한 블로그 글입니다.
https://junggoldchae-coding.tistory.com/entry/우테코-4주차
https://junggoldchae-coding.tistory.com/entry/우테코-4주차-과제

그리고 일급 컬렉션에 대해서도 공부해 보았습니다.
https://junggoldchae-coding.tistory.com/entry/일급-컬렉션-First-Class-Collection

 출제의도가 있다는 언급을 보고 나름 추론해보기 위해 고민했습니다.
- 주문서 / 날짜 일급컬렉션으로 만들기
- MVC 패턴 적용하기
- 메뉴 enum - Arrays.asList 활용하기
- 샴페인 이벤트 -  총주문 금액 계산 파트 밖에서도 메뉴의 가격 알 수 있야야 함 ( 메뉴가격 따로 관리)
- 비슷한 형식의 이벤트 여러 개 => 인터페이스,구현
- 이벤트 배지 조건 3개 (if - return)
등등 나름의 추론을 해서 코드를 짜보려고 노력했습니다. 

이번에는 기능명세서를 보다 세세하게 작성한 후에, 설계를 하고 구현을 진행했는데, 살아 있는 기능 명세서를 만들어 나가며 기능별로 커밋 메세지를 잘 적어 보려고 노력했습니다. 확실히 바로 구현했던 이전에 비해서 생각도 정리가 잘 되고 왜 설계가 중요한지 알게 되었습니다!
또한 테스트 코드를 중간중간 미심쩍은 부분에 대해서도 바로 작성했는데, 확실히 생각하지 못했었던 에러들을 잡을 수 있어 테스트 코드의 유용함을 느꼈던 것 같습니다!
마지막에 예외 사항을 처리할 때 테스트 코드를 먼저 작성하고 기능을 구현하는 TDD를 해봤는데 생각이 먼저 정리가 되어 좋았습니다! 아직 TDD에 대해 잘 모르는데 공부해봐야겠다는 생각을 했습니다.

예외 사항에 대해 알아보고, 예외 사항을 더 찾고 처리했으며 자바독 체크, 변수명 체크 ,캡슐화 체크하기, 구현 순서도 코딩 컨벤션 (  상수 => 멤버 변수 => 생성자 => 메서드 ), 테스트 코드도 깔끔하게 만들기, 테스트를 위한 코드와 구현 코드의 분리, final 키워드로 불변 값 선언하기 위해 신경 썼습니다.
객체를 객체스럽게 사용하기 (데이터를 가지는 객체에게서 데이터를 가져오기보다는 데이터에 대한 메세지를 던지도록 구현), getter를 사용하는 대신 객체에 메세지를 보내자는 부분에 대해서 제대로 구현하지 못한 것 같아 아쉽습니다.. getter 사용 시 Collections.unmodifiableList()와 같은 Unmodifiable Collecion을 사용해 외부 변경 막기를 하려고 했으나 순서를 지켜 출력하게 해 주는 링크드해시맵에서는 사용할 수가 없어 쓰지 못한 점도 아쉽습니다.. 목록 중에 "출력 순서는 자유롭게 출력" 하라는 부분이 있어 해시맵으로 다시 바꿀까 고민했지만 순서가 맞는 게 더 가독성이 좋아 보여 넘어갔습니다.

우테코 프리코스를 통해 정말 얻어간 것이 많은 것 같습니다! 이런 좋은 기회 주셔서 감사합니다.
과제를 진행하며 궁금하고 부족하다고 여겨졌던 부분에 대해 앞으로도 열심히 해봐야겠습니다. 붙는다면 정말 누구보다 열심히 임하겠습니다!

감사합니다!

와 진짜!!!

진짜 망할뻔했다

이거 한 11시 40분까지 안 되다가

음?

갑자기!

쨘!

바로 후다닥 소감문작성하고

진짜로 이렇게 망하는 줄 알았다

왜 안 됐던 거지?????? 안 고쳤는데???

 

어쨌든

중꺽마


🚀 차후계획 🚀

1차 합격자 발표: 2023년 12월 11일(월) 오후 3시, 개별 E-mail 통보

히이이이잉 제발

 

깃 컨피그

자바 문법

스트림

 

🛸 Java 코드 컨벤션 ..ing

junggoldchae-coding.tistory.com

다음주부터 미뤄왔던 인프런 깃/깃허브 강의도 듣기!

? - integer 과 int를 써야 하는 적합한 곳은 어디? 박싱언박싱


https://uwoobeat.vercel.app/uteco-pre-4

 

[우테코] 유연한 정책을 설계하는 방법

우테코 프리코스 4주차 미션을 진행하면서

uwoobeat.vercel.app

한번 보기