대외활동

    [NEXTSTEP] 세 번째, 네 번째 과제를 마무리 하면서 + 후기

    들어가며이번 글에서는 세 번째 미션인 로또 과제, 네 번째 미션인 수강신청을 구현하면서 배웠던 점에 대해 정리하고 후기를 작성하고자 합니다.Cyclic Dependency가 발생하지 않도록 하자1. Cylic Dependency란?Cyclic Dependency는 두 개 이상의 모듈 또는 클래스가 서로에게 의존할 때 발생합니다.의존성은 여러 수준에서 나타날 수 있으며 서로 다른 2개의 클래스가 서로의 import문을 추가했다면 Cyclic Dependency가 발생했다고 볼 수 있습니다.이러한 Cyclic Dependcy는 모놀리식에서 MSA로 분리할 때 애플리케이션 복잡도 증가로 인해 분리가 안 되는 어려움, 순환 참조 문제 등 많은 문제들을 야기합니다.2. Cyclic Dependency가 발생한 예..

    [NEXTSTEP] 두 번째 미션을 마무리 하면서

    들어가며 이번 글에서는 두 번째 미션인 로또 과제를 진행하면서 배웠던 점과 아쉬웠던 점에 대해서 정리하고자 합니다. 배운 점 인스턴스 필드가 3개일 때부터는 리팩터링 해라 연관성이 있는 새로운 클래스로 만드는 것을 고려하기 변수가 3개일 때부터는 별도의 도메인으로 분리해 볼 필요가 있는 객체일 수 있으니 클래스 분리를 고려해봐야 합니다. 정말 필요한 변수인지 고민하고 필요 없다면 제거하는 걸 고민해 볼 것을 추천합니다. 유효성 검사는 생성자에서 하자 개발자마다 유효성 검사를 하는 방법은 다양합니다. ValidatorUtils를 사용해서 구현을 하는 방법이라든가 아니라면 if문으로 유효성을 검사를 하는 방법이라든가.. 하지만 객체가 생성전에 객체가 생성될 수 있는 유효성 검사를 하는 것이 가장 좋은 방법일..

    [NEXTSTEP] 첫 번째 미션을 마무리 하면서

    들어가며 이번 글에서는 자동차 경주 과제를 진행하면서 배웠던점과 느낀 점들에 대해서 정리하고자 합니다. 배운 점 먼저 도메인을 설계하자 Inside-out 방식으로 구현하는 것이 중요합니다. 즉, 1:N 관계일 때 N인 객체를 먼저 테스트하는 것이 TDD 하기에 적합합니다. 테스트가 어려운 메서드는 구조 설계에서 제일 하단으로 옮기자 public class RandomNumberGenerator { private Random random; public RandomNumberGenerator() { this.random = new Random(); } public int generateRandomNumber(int min, int max) { return random.nextInt(max - min + 1..

    [NEXTSTEP] TDD, 클린코드 with Java 18기 시작 (첫 번째 후기)

    들어가며얼마 전부터 NEXT-STEP 교육 기관에서 “TDD, 클린 코드 with Java 18기” 교육 코스를 밟아 나가고 있습니다.해당 교육이 좋다는 평가가 많아 교육을 들을지 말지 고민하는 사람들에게 도움이 될 수 있을 거 같아 제 경험을 포스팅해서 올려봅니다.NEXT-STEP이란?우아한 형제들의 채용과정인 우아한 테크, 우아한 캠프 관련 교육을 주력으로 진행하는 교육 기관이었던거 같습니다.그러던 중 교육 대상을 위부 IT인력으로 확장해서 교육을 진행하고 있습니다.많은 실무자들을 위한 교육이 있는데 교육에 대한 평이 좋아 예전부터 관심이 있었는데 고민을 하다가 이번 기회에 교육을 신청하게 되었습니다.TDD, 클린 코드 with Java 18기저는 TDD 강의를 신청했습니다. 평소에 테스트 코드를 작..