우테코는 황홀한 방식으로 교육을 진행합니다.
매주 달라지는 페어와 함께 페어프로그래밍을 통해 협업 코딩을 경험할 수 있고, 그 이후 개인적인 시간까지 주어지면서 개인 능력 향상의 기회 또한 주어집니다.
또한 이렇게 작성하는 코드에 대해서는 실제 현업 전문가분들로부터 리뷰를 받아볼 수 있어 매우 황홀합니다.
1주차에는 자동차 경주 미션 페어 프로그래밍과 함께 연극을 진행했습니다.
한 명은 드라이버, 한 명은 네비게이터가 되어 프로그램을 구현합니다. 각자의 역할은 당위성에 따라 주기적으로 변경해줍니다.
그렇게 제출한 뒤에는 리뷰어로부터 피드백을 받고 코드를 개선해나가는 과정을 갖습니다.
1주차에서 정리한 자료는 다음과 같습니다.
별을 많이 받은 문서나 변수명을 정하는데 알기 좋은 사이트
전략 패턴
의존성 주입을 활용한 의존 역전 원칙을 이용하면 전략 패턴을 활용해 볼 수 있다.
어떠한 사람이 Weapon 이라는 interface를 주입받을 때, 이를 구현한 Sword나 Shield 또는 Bow 등 다양한 구현체들을 런타임에 교체해 줄 수 있다는 장점이 있다.
비즈니스 로직, 도메인, 모델
내 생각은 '비즈니스 로직' == '도메인' == '모델' 이고, 데이터 그 자체를 나타내는 것은 Entity로 이해하고 있다.
다만 Entity와 Dto의 차이는, 둘 다 데이터를 보관하고 전달하는 데에만 특화되어 있지만 (둘다 데이터 클래스 경향) Entity 는 데이터베이스의 영속성과 조금 더 관련되어 있는 표현이라고 보고 있다.
객체 분리, 역할 분담의 타당성
객체의 역할과 책임이 적절한지를 판단할 때는, 그 객체의 맴버와 public 메서드를 확인합니다.
만약 그 객체의 역할과 책임이 명확하도록 분리되어 있다면, 왜 이 객체가 이 맴버를 가져야 하는지
public 메서드에 대해서 무엇을 테스트 해야하는지 명확해집니다
PR 리뷰 요청 스탭
이건 교육과정에 있어서 적용되는 내용!
1. 미션 시작 (원본 저장소에서 내 브랜치 생성)
2. 원본 저장소에서 fork
3. 내 로컬로 clone
git clone -b hevton --single-branch 내 저장소
4. step 1 브랜치 생성
5. 푸시 한뒤 PR (step1 -> 원본 내 브랜치) & 교육 시스템에서 리뷰 요청
6. 코맨트 받고 Push & 교육 시스템에서 리뷰 요청
7. 머지 받고 나서는
git remote add upstream 원본저장소
리모트 저장소 등록하고
8. 원본 저장소에 있는 내 브랜치꺼를 내 로컬로 가져오기
git fetch upstream hevton
-> upstream/hevton 에 생긴다.
9. 가져오기
git rebase upstream/hevton
-> 현재 브랜치에서 이걸 실행하면 upstream/hevton 작업이 리베이스로 된다
10. step2 브랜치 생성 (가져온 hevton 기반으로)
git checkout -b step2
ktlint
코틀린 컨벤션 스타일 가이드. 코드 컨벤션. 코드 포맷팅에 도움이 됨.
어떤게 문제일지 알려줌
./gradlew clean ktlintCheck
다 고쳐줌
./gradlew clean ktlintFormat
커밋할때마다 자동검사
./gradlew addKtlintCheckGitPreCommitHook
+ 참고로 save actions 플러그인을 사용하면 * 와일드카드로 자동 변경해주는데, 이는 ktlint의 초기 세팅과 충돌하는 부분이다. save actions에서 해당 옵션을 해제하거나, 아니면 ktlint의 config를 커스텀해서 와일드카드 사용에 대한 예외를 처리하면 된다.
코틀린에서는 와일드카드 사용을 지양한다. 명시적인 import가 협업에서 충돌 방지나 명시적인 클래스 확인이 편하기 때문이다.
시간 안배와 자기애를 이어나가자.
'[우아한테크코스 AN]' 카테고리의 다른 글
[우아한테크코스] 5주차 회고 (1) | 2024.03.23 |
---|---|
[우아한테크코스] 4주차 회고 (0) | 2024.03.23 |
[우아한테크코스] 3주차 회고 (0) | 2024.03.23 |
[우아한테크코스] 2주차 회고 (0) | 2024.03.04 |