본문 바로가기
Education/우아한테크캠프Pro

[우아한테크캠프Pro] 1주차 - Racing car

by 잭피 2020. 12. 6.

 

안녕하세요~ 잭코딩입니다!

 

요즘 글쓴이는 우아한테크캠프 Pro라는 교육과정을 듣고 있습니다

(해당 업체에서 광고를 받지 않았으며, 교육비를 직접 내고 교육을 받고있습니다)

교육을 받으며 느낀점을 적기 위한 포스팅입니다


우아한테크캠프 Pro에 대해 간단히 설명드리겠습니다 

이 교육과정은 벡엔드(Java) 경력 4년 이상을 대상으로 진행합니다 

 

우아한테크캠프 Pro 과정은 아래 경험을 제공합니다.
1. 클린코드를 통해 유지보수하기 좋은 코드를 구현하는 경험
2. JPA 기반으로 웹 애플리케이션을 개발하는 경험
3. 단위, 인수 테스트를 기반으로 웹 애플리케이션을 개발하는 경험
4. 레거시 코드를 안정적으로 리팩터링하는 경험
5. 시스템 아키텍처를 설계하고 운영하는 경험
6. 대용량 데이터에 대해 최적화할 대상을 살펴보고, 서버를 튜닝하는 경험.

 

우아한테크캠프 Pro 과정 진행 방식
1. 우아한테크캠프 Pro 신청으로 교육 과정 신청
2. 신청자를 대상으로 1주일 간의 프리코스 진행
3. 교육생 선발. 선발된 교육생은 후원 기업에서 50% 교육비 지원
4. 9주간의 교육 진행
5. 우수 수료생에게 후원 기업에서 30% 교육비 추가 지원

 

글쓴이는 현재 4년차 개발자입니다

위 과정들이 현재 많이 고민을 하던 주제들이었습니다

 

이 시점 개발을 하면서 가장 신경이 쓰였던 3가지는 아래와 같습니다

1. 현재 필요한 구현 클래스가 1개인데 미래 확장성을 고려해서 인터페이스를 꼭 먼저 만들어야하는가?

 

2. 책임에 맞게 객체를 설계하고 객체끼리의 메시지 전달을 잘 구현하였는가?

 

3. TDD는 어떤식으로 해야하는가? 

3-1 Production 코드를 먼저 껍데기만 설계한 후 테스트 코드에서 해당 메소드를 실행시킨다 -> 처음에는 실패한다 -> 성공하도록 코드를 작성한다

3-2 테스트 코드에 비지니스 로직을 작성하여 성공한 후 -> Production 코드를 생성하여 비지니스 로직을 옮긴다 -> 그리고 성공시킨다

평소 이렇게 2가지 방식으로 테스트 코드를 작성했습니다 

매번 어떤 방식이 좋을지 고민을 했었습니다

 

이번 교육과정에 이러한 내용이 포함되어 있었고

이외에도 JPA, 대용량 데이터 처리등 들으면 도움이 많이 되겠다는 생각하여 신청하였습니다

 

신청을 하고 나면 바로 교육을 들을 수 있는게 아니었습니다...

이 교육을 잘 수행할 수 있을지 체크하는 프리코스가 있었습니다

 

미션에서 기능 요구사항은 어렵지 않았지만 프로그래밍 요구사항이 여러가지가 있었습니다

 

1. 자바 코드 컨벤션을 지키면서 프로그래밍한다
2. indent depth가 2가 넘지 않도록 구현한다. 1까지만 허용한다
예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다 
3. else 예약어는 쓰지 않는다
4. 함수(또는 메소드)의 길이가 10라인이 넘어가지 않도록 구현한다
5. Junit5와 AssertJ 사용법을 익혀 Junit5 기반 단위 테스트를 구현한다
6. git commit convention을 지킨다

 

프리코스를 수행하면서 객체 지향적으로 설계하기 위해 많은 생각을 할 수 있었습니다

또한, git commit convention을 익힐 수 있었고 실무에서도 사용하게 되었습니다

 

이렇게 프리코스가 끝나면 합격자를 발표하고 교육을 시작합니다

주1 오프라인 수업이 이지만 현재 코로나로 인해 주1 줌을 통해 교육을 받고있습니다

 

저번주에 첫 수업을 듣고  3. TDD는 어떤식으로 해야하는가?  3번째 고민이 해결되었습니다

포비님의 라이브 코딩을 지켜보며 TDD 방식을 배울 수 있었습니다

 

이번 레이싱 미션을 진행하면서 TDD방식으로 개발을 진행했습니다

초반에는 어색하였고 불편했지만 코드를 리팩토링하면서 이러한 테스트 코드들이 큰 힘이 된다는 것을 느꼈습니다

마음껏 수정하면 테스트 코드는 진실을 말해주었습니다

"성공" 또는 "실패"

 

이번 교육과정을 통해 가장 얻고싶었던 경험 중 하나가 코드리뷰였습니다

매 단계마다 새로운 리뷰어가 배정되고, 코드를 리뷰해줍니다

이번 레이싱 단계를 진행하면서 현재 리뷰어님에게 좋은 코드리뷰를 받고 있습니다

부끄럽지만 코드리뷰 과정을 살짝 보여드리겠습니다

 

친절한 리뷰어님의 코드리뷰

 

 

아래 포스팅은 이번주 코드리뷰를 통해서 배웠던 내용입니다

 

Strategy Parttern (feat. Interface)

jackjeong.tistory.com/108

 

[Java] Strategy Pattern(전략패턴)[feat. Interface]

안녕하세요~ 잭코딩입니다! 이번에는 인터페이스의 활용에 대해 글을 써보려고 합니다! 요즘 글쓴이는 우아한테크캠프 Pro라는 교육과정을 듣고 있습니다 이번 미션에서 Strategy Pattern을 적용해

jackjeong.tistory.com

 

First Class Collection (일급 컬렉션)

jackjeong.tistory.com/107

 

[Java] First Class Collection(일급 컬렉션)

안녕하세요~ 잭코딩입니다! 이번에는 일급 컬렉션에 대해 글을 써보려고 합니다! 요즘 글쓴이는 우아한테크캠프 Pro라는 교육과정을 듣고 있습니다 이번 미션에서 일급 컬렉션을 적용해보라는

jackjeong.tistory.com

이 교육에서 매주 진행하는 강의에서도 좋은 내용을 배울 수 있지만,

미션을 통해 진행하는 교육과정이 정말 좋은 것 같습니다

미션을 진행하면서 평소 설계할 때 고민이 자연스럽게 코드에서 보이게 됩니다

그리고 그 고민을 리뷰어님과 이야기를 하면서 해결할 수 있습니다

 

 

앞으로 8주동안 더 열심히 해보겠습니다!

 

댓글