본문 바로가기

분류 전체보기

(41)
TDD의 장점은 무엇일까? 한참 TDD를 공부할 때 A가 물었다. A: TDD가 뭐에요? 왜 써야 하죠? 나: TDD는 테스트 코드를 먼저 작성하고 프로덕션 코드를 작성하는…. (중략) 설계 기법이고요. ~~한 장점이 있습니다. A: 어? 그거 테스트 코드 작성했을 때의 장점 아니에요? 먼저 프로덕션 코드 작성하고 테스트 코드 작성하면 되지 않아요? 저는 테스트 코드 작성은 필수지만, TDD는 안 해도 된다고 생각해요. '어 그러네..? 분명 TDD만의 장점이 있는데….' 나는 할 말을 잃었다. 왜 쓰는 걸까? 그 당시 나는 TDD의 장점을 이렇게 말했다. 피드백이 빠르다. 변화에 대한 두려움을 줄여준다. (리팩토링이 편하다) TDD를 하면 코드 복잡도가 떨어진다. 디버깅 시간을 줄여준다. 동작하는 문서 역할을 한다.. Test 2019. 12. 28. 19:28
자바 리플렉션이란? 작년 이맘때 궁금하지만 어려워서 넘어갔던 기술들이 있었습니다. 대표적으로 엘라스틱 서치와 리플렉션이 있었는데 최근에 하나씩 공부하면서 지난번과 달리 비교적 쉽게 체득할 수 있었는데요. 그 이유는 학습 방법의 변화 덕분입니다. 작년에 리플렉션을 공부할 때는 무작정 개념과 사용방법만 익히려고 했는데 이번에는 Why 에 초점을 맞춰서 공부했더니 더 쉽게 이해하고 활용을 잘할 수 있게 되었습니다. '이 기술은 왜 나왔을까? 왜 사용할까?' 를 이해하는 것은 중요합니다. 그래서 작년의 저와 같은 사람에게 도움이 되었으면 해서 리플렉션이 무엇인지 정리를 해보기로 했습니다. 리플렉션의 사용방법은 다루지 않습니다. 사용 방법은 아래 링크를 추천합니다 https://www.baeldung.com/java-reflecti.. Java 2019. 12. 28. 19:06
우아한테크코스 레벨2 회고 우아한테크코스 레벨2(7~8월)가 끝났다. 기념으로 회고를 작성하기로 했다. 지난 두 달간 배운 것들 레벨1 때는 자바, 클린코드, TDD, 페어프로그래밍을 위주로 배웠다면, 레벨2에서는 스프링을 위주로JPA, 배포, AJAX를5주간 배운 뒤에3주간 미니 프로젝트를 했다. 스프링은 개발하면서 조금씩 깊이 익히는 목적으로 스프링부트로 진행했다. 간단한 미션을 주고 원하는 사람에 한해서 추가 미션이 있었다. 사실 스프링을 조금 알고 있었는데도 막상 해보니 아주 간단하지도 않았다. 특히 이번에 처음으로 ControllerAdvice, Interceptor, ArgumentResolvor도 처음 사용하면서 많이 배울 수 있었다. JPA는 매커니즘과 관계매핑을 배웠다. 배포는 EC2에 올리고 쉘스크립트를 작성했다.. 우아한테크코스 2019. 12. 28. 18:53
JPA - One To Many 단방향의 문제점 주변에서 One To Many 단방향에 관해서 물어볼 때마다 저는 항상 이렇게 대답했습니다. 김영한 님의 인프런 강의에서 봤는데~ One To Many 단방향은 좋지 않다. 차라리 양방향을 해라. 이유는 ~ 때문이다.. 이렇게 대답했습니다. 하지만 직접 문제를 겪어 본 적이 없어서 말에 설득력이 부족했습니다. 그래서 직접 한 번 실험해보고 문제점을 정리했습니다. 먼저 김영한님은 일대다 단방향 매핑은 이러한 단점이 있다고 하셨습니다. 엔티티가 관리하는 외래 키가 다른 테이블에 있음 (Many에 외래키 존재) 연관관계 관리를 위해 추가로 update sql 실행 (성능상 큰 차이는 없다) 개발을 하다 보면 B를 만졌는데 A도 update sql문이 나가니 헷갈린다. 그래서 필요하다면 일대다 보다는 양방향 관.. JPA 2019. 12. 28. 18:52
[질문]많은 필드를 가진 서비스 클래스 어떻게 해결해야 할까요? 현재 페이스북을 따라 만드는 미니프로젝트를 진행 중입니다. 기능이 추가되면서 어느 순간 하나의 Service가 5개의 필드를 가지게 되었고, 리팩토링을 할 시점이 왔구나!를 느꼈습니다. 하지만 아무리 생각해도 좋은 방안이 생각나지 않아서 이렇게 질문을 남기게 되었습니다. 현재 문제점과 제가 생각한 해결 방법에 대해서 정리했습니다. 제 해결 방법에 대한 의견이나 혹은 다른 방법에 대해서 조언해 주시면 감사하겠습니다. 현재 상태 게시글 이미지 위 이미지는 프로젝트의 게시글로, 게시글에서 보여줘야 할 부분은 총 5가지입니다. 내용, 작성일, 수정일, 작성자 이미지 혹은 동영상 댓글 개수 좋아요 개수 공유 횟수 (현재 미구현) Post 엔티티의 연관관계 Post는 현재 User와 UploadFile을 단방향으로.. Spring 2019. 12. 28. 18:42