목록우아한테크코스5기 (6)
영호
들어가기 앞서, 우테코 레벨2를 진행하면서 기존과는 다르게 도메인 객체를 고유하게 식별해야 되는 상황이 생겼고, 이를 해결하기 위해 구분되어야 하는 객체에 id필드가 생기게 됐습니다. 이로 인해, 도메인 객체가 데이터베이스에 종속적인 존재가 된다는 느낌을 받고, 주변 크루들과 이야기 하면서 현재 저의 주관적인 생각을 정리한 글입니다. 다른 의견이나 잘못된 내용이 있으면 언제든 피드백 해주시면 감사하겠습니다 ^.^ 결론 우선 결론부터 말하자면 필요하다가 생각합니다. 여러 인스턴스 중 유일하게 하나의 인스턴스를 식별할 필요가 있는 객체라면 식별자가 반드시 있어야된다고 생각합니다. 그 중에서도 인조키를 통한 식별자가 좋다고 생각합니다. 그리고, 정말 DB에 종속적이지 않은게 꼭 좋은거라고 생각하지 않습니다. ..
들어가며 이번 글에서는 프리코스부터 레벨 1 미션동안 빠지지 않던 요구사항인 원시값 포장에 대해 미션을 진행하면서 이것이 왜 필요한지, 반드시 적용해야 하는지에 대한 주관적인 입장을 정리해보겠습니다. 우선 메서드의 파라미터에 동일한 타입이 존재할 경우 오용을 방지할 수 있다고 생각합니다. 파라미터에 동일한 타입이 존재하는 예시 public class Person { private final String name; private final String address; Person(final String name, final String address) { this.name = name; this.address = address; } } 위 코드처럼 작성한 경우 클라이언트에서 아래와 같은 실수를 할 수 있습..
개요 우아한테크코스 백엔드 5기 최종 코딩 테스트 후기를 작성해보려고 합니다. 문제를 보고 느낀 점 최종 테스트를 보기 전 같이 피어리뷰 스터디를 하던 분들과 중꺾마 얘기를 하고 갔기 때문에 아무리 어려워도 끝까지 최선을 다한다는 마음으로 임했습니다. 사실 처음엔 문제가 잘 이해되진 않았지만 하나씩 풀어나가다 보니 서서히 풀린다는 느낌을 받았습니다. 최종 코딩 테스트 관련 메일에서 돌아가는 쓰레기를 만드는게 더 낫다는 내용이 있었지만, 제 코드를 완전히 신뢰할 수 없기에 최소한의 테스트코드를 작성하려고 했습니다. 실제로 이렇게 구현을 하다 보니 시간이 촉박하긴 했습니다 ㅎ,, 그리고 기능목록도 계속해서 업데이트하려고 했습니다. 그동안 해왔던 방식인 각 기능목록을 체크박스로 만들고 구현 완료 시 체크하는 ..
개요 4주 간의 프리코스가 끝나면서 소감을 정리해보려고 합니다. 4주 간의 소감 프리코스를 진행하기 전 저는 객체지향에 대한 감이 없었습니다. 4주 동안 의식적인 연습을 통해 미션을 수행하면서 메서드를 분리하고, 클래스를 분리하고, 코드 컨벤션을 지키려고 노력했습니다. 그러다 보니 1주 차에 어색했던 부분이 2주 차에서 보다 능숙해지고 2주 차에 어색한 부분이 3주 차에는 보다 능숙해지는 경험을 할 수 있었습니다. 프리코스를 마치고 1, 2주 차의 코드를 보면 정말 리팩터링 할 요소가 너무 많이 보입니다. 그만큼 프리코스 기간 동안 성장한 거 같아 기쁘고, 앞으로도 다른 기수의 프리코스 내용을 연습하면서 계속해서 역량을 키워나갈 예정입니다. 4주 동안 힘들기도 했지만, 많은 성장을 할 수 있어서 보람 있..
개요 3주 차 미션에서는 로또 게임이 나왔습니다. 미션을 진행하면서 있었던 일들에 대해 작성해보겠습니다. 신경 썼던 점 자율적인 객체 만들기 테스트하기 좋은 코드 작성 연관관계와 의존관계 분리 자율적인 객체 캡슐화를 위해 객체가 자신이 가지고 있는 정보에 대한 책임을 가지게 함으로써 응집도를 높이고 결합도를 낮추고 싶었습니다. 왜냐하면 프리코스를 진행하면서 읽은 책, 구글링, 세미나 영상 등 모두 좋은 객체지향 설계를 위해서는 응집도를 높이고 결합도를 낮춰야 한다는 내용을 설명하며 캡슐화가 빠지지 않았습니다. 물론 2주 차 미션에서도 해당 내용을 지키기 위해서 노력했지만, 지속적인 노력을 통해 실력을 키우고 싶었습니다. 이 과정에서 로또 당첨 순위를 판별하는 책임을 전체 로또 정보를 가지고 있는 Enti..
개요 1주 차에는 코딩 테스트 형식의 문제들이 나왔고, 2주 차에는 프리코스를 검색해보면 항상 나오는 숫자 야구 게임이 나왔습니다. 1주 차 미션을 진행하면서 무엇을 신경 쓰면서 진행했는지 정리해보겠습니다. 무엇을 신경 썼는가 데이터 중심이 아닌 책임에 중심을 둔 설계 캡슐화 객체에서 외부에 공개할 메서드와 내부에 감출 메서드 책임에 중심을 둔 설계 그동안 저는 DB, 애플리케이션을 설계할 때 구현해야 하는 기능을 보고 '이런 데이터가 있어야겠네'라고 생각하면서 설계를 해왔습니다. 그러나 객체 지향적인 설계를 위해선 데이터 중심이 아닌 구현해야 하는 기능을 수행할 적절한 객체를 찾고, 구현 시점에서 필요한 데이터가 무엇인지 생각해야 된다는 내용을 알게 됐습니다. 그래서 저는 구현해야 하는 기능 목록을 정..