본문 바로가기

Woowacourse4

[레벨 1 회고] 전략패턴을 사용해보며 미션을 진행하다보면 객체들이 할 수 있는 다양한 행위가 설계해야 하는 경우가 생긴다. 행위를 변경해주기 위해서는 개발자가 직접 수정해주어야 하는데 이는 OCP를 위배하게 되는 요소중 하나이다. 이러한 문제들을 해결하는 방법 중 하나로 디자인 패턴 중 하나인 전략패턴을 제시해본다. 전략패턴을 사용하기 전 생기는 문제점들 자전거라는 예시를 통해서 한번 살펴보도록 하자. 자전거라는 클래스는 display 메서드를 통해서 이름을 말해주며, fuel 메서드를 통해서 움직이는데 필요한 에너지를 말해주는 역할을 수행한다. public class Bicycle { public void display() { System.out.println("자전거 입니다."); } public void fuel() { System.o.. 2022. 4. 18.
[레벨 1 회고] 정적 팩터리 메서드 / 생성자와 부생성자 레벨 1 첫 미션인 자동차 경주 게임을 설계하면서 정적 팩터리 메서드에 대해서 많은 고민을 할 수 있었다. 그리고 미션을 3개 더 진행해보면서 나만의 기준을 만들 수 있었다. 이번 글에서는 글쓴이가 정적 팩터리 메서드 / 생성자와 부생성자를 사용하는 기준에 대해서 간단하게 소개할까 한다. 정적 팩터리 메서드의 사용 시점 먼저 정적 팩터리 메서드에 대해서는 아래 글에서 설명을 했으니 자세한 설명은 하지 않고 넘어가려 한다. 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 서론 객체를 생성 할 때 일반적으로 사용되는 방법은 `public 생성자`를 사용하는 방법일 것이다. 하지만 `생성자` 말고도 객체를 생성하는 방법이 있는데 바로 오늘 포스팅의 주제인 `정적 팩터리 hoonstack.tistory... 2022. 4. 17.
[레벨 1 회고] TDD에 익숙해짐과 동시에 좋은 테스트 코드 작성하기 테크코스 합류 전 TDD, 테스트 코드가 무엇인지는 알고 있었지만 TDD는 하지도 않았을 뿐더러, 테스트 코드는 매번 작성방법의 기준이 달랐었고 작성하더라도 왜 작성해야 하는지 이유가 명확하지 않은 상태에서 작성했었다. 그때는 테스트 코드는 당연히 작성해야하니깐 작성해야 겠다는 생각을 했었던 것 같다. 테크코스 합류 후, 그리고 지금 레벨 1을 마치는 시점에서 TDD, 테스트 코드를 꾸준히 수행한 결과 부족하지만 TDD, 테스트 코드의 목적과 나만의 작성 기준을 만들 수 있었다. TDD, 왜 권장하는가? 이전에 TDD로 설계를 하지 않을 경우 보통 다음과 같은 절차를 통해서 기능이 구현되었었다. 1. 기능에 맞는 설계를 고민하고 각 클래스에 어떤 역할을 지정할지 고민한다. 2. 설계와 대략적인 구현 고민.. 2022. 4. 17.
[레벨 1 학습] git 정복하기 서론 git은 분명 처음 시작하면 어렵다고 느껴진다. (그냥 어려운거 같기도..?) 하지만 극복해야 할 부분이기 때문에 이번 글을 통해서 확실히 정리를 해두고자 한다. (해당 내용은 우아한테크코스의 미션을 수행하기 위한 과정을 일정 부분 참고하여 글을 작성하였습니다.) (해당 글에서는 용어에 대한 자세한 설명은 하지 않습니다. 용어에 대한 내용은 구글링으로 참고해주시면 되겠습니다.) 브랜치 브랜치는 어떤 의미일까?? 브랜치란 동일한 소스코드 내에서 독립적으로 어떤 작업을 진행하기 위한 개념을 말한다. 각 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시해 진행할 수 있다. 저장소의 가장 상단에는 'main(master)'라는 브랜치가 있다. 'main' 브랜치는 모든 소스코드의 최상단에 .. 2022. 2. 19.