우아한테크코스

이어서... 오늘은 아래의 것을 진행했다. 코드리뷰 그렇다. 오늘도 하루종일 코드리뷰만을 했던 것이다.. 그리고 병원도 갔다왔다... 족저근막염은 아파요 3일전에 새벽에 일어나 하루를 시작하려는데, 왼쪽 발바닥에 바늘로 찌르는 고통이 느껴졌다. 최근에는 과제 한다고 헬스도 안 갔고, 많이 걷지도 않았는데 왜? 라는 생각이 들었다. 아마 매일 10kg 짜리 가방을 매고 공부하러 왔다갔다 한게 영향을 미쳤나보다 생각했다. 그리고 그냥 그 날도 평소와 똑같이 그 가방을 매고 과제를 하러 나섰다. 이틀 전은 정말 아팠다. 걷기가 너무 힘들었다. 절뚝거리며 걸을 수밖에 없었다. 다만 과제를 마무리 해야 하기에 꾹 참았다. 어제도 똑같이 아팠다. 과제가 마무리 됐으니 치료를 받고자 집을 나섰다. 주변 사람들이 침이..
2주차가 끝나고... 벌써?? 라고 할 정도로 시간이 빠르게 흘렀다. 오늘은 2주차때 했던 것처럼 코드리뷰를 할 생각이었는데, 어제부터 갑자기 생겼던 족저근막염 + 안구건조증 정기진료 때문에 시간을 많이 사용했다 🥲 공부한다고 가방에 노트북, 패드, 노트, 키보드, 물병, 충전기가방 등등을 들고 다니니 가방 무게가 10kg가 넘었다. 이걸 몇개월동안 들고 다녀서 발바닥에 무리가 갔나보다. 족저근막염에 침이 직빵이라는 말을 듣고 한의원에 갔는데, 심해서 6번은 맞아야 한다고 카더라... 그래서 내일 다시 일반 병원에 가보기로 했다. 내일은 목발을 짚을 거 같은 느낌... 코드 리뷰 아무튼 늦게 코드 리뷰를 시작했다. 과제는 오늘 확인해보지도 못했다. 로또라고 들었는데, 자세한 내용은 확인해보지 못했다. (..
이어서... 오늘은 2주차 과제의 마지막 날이다. 오늘 한 것은 1. 리팩토링 2. 생성자 주입 3. 단위, 통합 테스트 코드 작성 이었다. 코드 작성량이 1주차보다 더 많은데도 1주차에 비해 조오금 더 여유롭게 과제를 끝내게 되었다...! 예기치 못한 오류 해결 어제 밤에 과제 제출 사이트에 테스트 통과를 확인하려고 예제 테스트를 실행했는데, 몇 번이나 해도 계속 에러가 발생했다. '예기치 못한 오류로 인하여 실행에 실패하였습니다.' 엄청 당황했다. 분명 코드는 문제가 없고, 실행도 잘 됐기 때문에 더 그랬다. 심지어 오류 이유도 알 수 없었기 때문에 더 그랬다. 원인은... 오류의 원인은 바로 테스트 파일들의 위치에 있었다. TDD 과정에서 작성한 파일들이 racingcar 폴더 내에 위치해서, 테스..
이어서... 오늘은 어제 회고록에 적힌 것 처럼, 1. 생성자 주입 사용 -> 내일 마무리 때 할 것 2. 싱글톤 또는 정적 팩토리 메서드 사용(필요하다면) 3. DTO 사용으로 Car 객체 캡슐화 지키기 4. 정규 표현식 캐싱하기(matches() 생성 비용 높음) 5. 재사용되어야 할 객체 파악해서 재사용하기 를 진행 했다. 이 중 5번은 재사용될만한 객체가 없다고 판단해서 진행할 수 없었다. 벌써 과제가 내일 하루 남았다니... 시간이 너무 빠르다. 하루종일 과제만 몰입해서 하는데도 지겹지가 않다. 정적 팩토리 메서드 패턴 정적 팩토리 메서드를 새로 학습했는데, 정적 팩토리 메서드는 해당 객체를 사용할 다른 객체에서 직접 객체를 생성하지 않아 의존성을 줄이고, 해당 객체의 캡슐화를 높이는 장점이 있..
이어서... 오늘 한 것은, 1. 완료한 것들 커밋 컨벤션 지켜서 커밋하기 2. TDD 마무리하고 메인 코드로 옮기기 3. 과제 테스트 통과하기 4. 리팩토링(진행중) 였다. 어제 회고글에서 오늘 하기로 한 것들을 기대한 만큼 해냈다. 역시 뿌듯하다. 특히 TDD 이후 과제 테스트를 원큐에 성공했을 때의 기쁨이란... 이번에도 혼자서 박수쳤다. 그리고 오늘 고민했던 내용들이 되게 많은데, 계속 의식의 흐름이 하나의 고민 -> 파생되는 다른 고민 -> 또 파생되는 다른 고민 -> 이렇게 넘어간다. 고민이 생각 날 때마다 빠릿하게 기록해놔야겠다... 완료한 것들 커밋 컨벤션 지켜서 커밋하기 TDD를 진행하며 컨트롤러 외에 모든 테스트를 완료했고, 완료된 테스트들을 test 브랜치에 전부 커밋하고 푸쉬했다. ..
이어서... 오늘은 작업을 많이 하지 못했다. 교회도 가고, 최근 너무 잠을 적게 자서(평균 4시간 수면) 잠을 몰아서 잤다. 한 12시간 안 되게 잔거 같은데, 이렇게 안 하면 정말 몸이 안 따라줄 것 같았다. 최근에는 허리 통증이 생기기 시작했다. 타이머를 설정해서 일정 시간마다 스트레칭하는 시간을 가져야겠다... 아무튼, 오늘 한 것은 딱 이거다. 1. TDD 입출력을 담당하는 InputView, OutputView와 랜덤 숫자 생성 테스트를 진행했다. InputView 입력을 받는 코드는 1주차 코드를 그대로 사용했다. 테스트 코드에서 입력값을 직접 줄 수가 없으니 미리 InputStream 에 값을 넣어주고 테스트를 했다. OutputView (코드가 길어서 사진 대신 코드를 직접 넣었다.) O..
이어서... 오늘 한 것은 1. 리팩토링 2. TDD(구현) 였다. 사실 TDD 과정 속에 리팩토링이 있으니 동시에 진행했다고 봐도 무방하다. 오늘은 검증과 관련된 코드를 작성했는데, 생각보다 검증 부분에서 테스트하고 리팩토링 할게 많았다. 특히 enum 클래스에 검증에 필요한 값들을 옮기고, 또 테스트를 진행하며 처리하지 못한 에러들을 잡아내는 게 좀 오래 걸렸다. 가변길이 매개변수 테스트 코드에서 이렇게 공통되는 테스트는 assertExceptionTest() 메서드로 분리해서 사용하고 있었다. 자동차 이름을 하나만 넣어서 테스트할 부분이 있었고, 여러개를 넣어서 테스트 할 부분이 있었는데 동시에 진행하고 싶어서 가변길이 매개변수 를 사용했다. 이건 까먹고 있었던 건데, 어떻게 하면 매개변수의 개수를..
이어서... 오늘 한 것은 1. 옵저버 패턴 학습 2. 설계(mvc 패턴 + 옵저버 패턴) 3. 구현(TDD) 였다. 사실 처음에는 '오늘은 설계만 끝내도 좋다-' 라고 생각했다. 하나의 패턴을 새로 학습하는 데에 적지 않은 시간이 걸릴 것이라 예상했기 때문이다. 그런데 예상보다는 패턴 이해에 시간이 적게 걸려서 설계와 80% 정도까지 구현을 했다.(그래도 한 6시간은 패턴 학습에 쓴 것 같다)(그리고 새벽까지 구현을 했다...) 시간 사용 비율은 [옵저버 패턴 공부 : 설계 : 구현(TDD)] 을 [6 : 2 : 2] 정도의 비율로 시간을 쓴 것 같다. 오늘 밤에 처음 코드 작성을 시작했는데, 몇 시간 만에 80% 정도의 구현을 했다. 그 만큼 *설계에 공을 들이고 머릿속으로 끊임없이 시뮬레이션을 해서..
1주차가 끝나고... 1주차가 완전히 종료된 오늘, 00시를 기점으로 1주차 과제에 대한 제한들이 풀렸다. 그래서 모아놨던 1주차 회고들을 싹 오픈하고, 코드 리뷰할 사람을 모집했었다. 코드 리뷰 나는 총 열 아홉분과 코드 리뷰를 진행했다. 프리코스 커뮤니티에 서로 코드리뷰 할 사람을 모집하는 글을 올렸는데, 감사하게도 많은 분들이 코드 리뷰 요청을 해주셨다. | 끊임없이 날라오는 리뷰 관련 메일들... 약속이기에, 열 아홉분 모두의 코드를 가능한 꼼꼼히 보며 리뷰해드렸다. 나는 1주차 과제 때 SRP를 지키는 것을 많이 집착했는데, 그래서인지 리뷰 요청하신 분들의 코드 중 의도치 않게 한 객체가 여러 역할을 가지고 있는 것이 눈에 잘 보여서 그것 위주로 리뷰를 해 드렸다. 잘 읽히는 코드도 있었고, 그..
7일차 오늘은 많은 결과물을 내지는 않았다. 커밋은 3가지만 추가했다. 숫자를 검증하는 부분에서 '0' 을 입력하는 경우를 고려하지 못해서 관련 로직을 추가했다. 테스트 케이스를 좀 더 꼼꼼히 만들었어야 했는데, 아무래도 첫 실전 테스트 코드 작성이었다 보니 정신이 없었기도 했다. 2주차 과제부터는 경우의 수를 전부 생각해보려는 노력을 해야겠다. 체크 리스트를 만드는게 좋을지도...? 그리고 싱글톤 패턴을 적용해봤다. 싱글톤 패턴은 과제를 시작하기 전부터 알고 있던 유일한 디자인 패턴이었는데, 그 이유 때문에 써먹어보고 싶었다. | 싱글톤 패턴을 공부하고 기록해놨던 것 사실 다른 클래스에도 싱글톤 패턴을 적용할 수 있었지만, 아직은 쓰는게 더 좋은지, 좋지 않은지 상황에 대한 판단이 확실치가 않았다. ..
이어서.. 계속해서 리팩토링을 하고 있다. 솔직히 해도 해도 개선할 것이 끊이지가 않는다. 만들면 만들수록 욕심이 생긴다. 처음에는 'mvc 패턴 사용해보고 메서드 분리만 잘 해보자!' 였는데, dto, service계층, 객체지향 체조 원칙을 넘어 이제는 SOLID, 캡슐화, enum과 하드코딩까지 고민하고 있다. SOLID와 추상화, 인터페이스 사용을 이번 주 과제에 적용하기는 어려울 것 같다. 소감문과 전체 코드 해석도 작성해야 하고, 아직 그것들을 쓸만큼 이해하지 못했다. 가능하다면 2주차 과제 때 써보고 싶다..! 오늘 한 것도 정말 많다. dto 분리, 상수와 enum 사용, 자잘한 리팩토링들... 그리고 객체지향 원칙들을 지켰는지 체크하고, 최종 테스트까지 정말 많은 걸 했다. 그렇다고 힘이..
이어서.. 오늘부터는 리팩토링하는 시간이다. 리팩토링 할 것은 네이밍 결합도 낮추기 다른 뭐든 필요한 리팩토링 이다. 좋은 네이밍은 역시 어렵다. 그래도 네이밍에 대한 감을 잡아가고 있다. 최대한 리팩토링 하고 있는데, 머리가 너무 복잡할 때는 역시 쓰면서 정리하는 게 최고인 것 같다. 머릿속으로 시뮬레이션 돌리는 거에는 역시 한계가 있는 것 같다. 에러..? 테스트 코드를 실행하면 다음과 같이 게임 종료 이후에도 "숫자 야구 게임을 시작합니다." "숫자를 입력해주세요 : " 메시지가 출력되는 현상을 발견했다. 그런데 정말 신기하게도 내가 직접 Application 시작점에서 실행하면 저런 메시지가 나오지 않는다. 그리고 애초에 저 "숫자 야구 게임을 시작합니다." 는 Application 에서 객체를 ..
킹효준
'우아한테크코스' 카테고리의 글 목록 (2 Page)