분류 전체보기 250

[우아한테크코스] 4주차 후기 - 전략패턴의 적용

날짜 TODO 추가 공부 5/27 (월) 좌표계산기 리뷰 - 5/28 (화) 강의 (Exception), 책-객체지향과 디자인패턴 5/29 (수) 프로그래밍 (로또) 5/30 (목) - 책-객체지향과 디자인패턴 5/31 (금) 강의 (프런트엔드 기본) 책-객체지향과 디자인패턴 6/1 (토) 캡스톤 서류 정리 이번 주는 조금 여유가 있는 상태였기 때문에 로또 프로그램을 빨리 구현하고 개인 공부를 했다. 주말일정은 몸이 좋지 않아서 예정되어 있던 테니스 시합을 취소하고 집들이를 다녀올 예정이다. 로또 미션: 전략 패턴의 적용 전략패턴(Strategy Pattern) 개발자가 반드시 정복해야할 객체지향과 디자인 패턴이란 책에서 이론적 내용을 학습 및 정리 후 프로젝트에 적용한 내용입니다. 로또 생성의 문제: ..

[우아한테크코스] 3주차 후기 - if 문 없이 개발하기

날짜 TODO 추가 공부 5/20 (월) 사다리 타기 리뷰 - 5/21 (화) 강의 (Git, ), 페어 프로그래밍 (좌표 계산기) 책-객체지향과 디자인패턴 5/22 (수) 페어 프로그래밍 (좌표 계산기) 5/23 (목) 페어 프로그래밍 (좌표 계산기) 함수형 인터페이스 5/24 (금) 공부 (책-객체지향과디자인패턴), 강의 (페어프로그래밍 회고) 팩토리패턴 5/25 (토) 캡스톤 개발 - 5/26 (일) 피드백 (좌표 계산기) - 팩토리 패턴 이번 주차 실습과 과제에서는 팩토리 패턴을 이용하는 부분들이 자주 등장하였다. 팩토리 패턴이란? 어떤 클래스의 인스턴스를 만들지 서브클래스에서 결정하는 패턴 조건에 따른 객체 생성 부분을 자신이 직접하지 않고 팩토리 클래스에 위임하여 객체를 생성하는 방법이라고 할..

[우아한테크코스] 페어프로그래밍 회고

페어프로그래밍 회고 우아한테크코스에서는 기본적으로 이러한 페어 프로그래밍을 실천한다. 처음에 매번 자주 페어가 바뀌는 것에 의문을 품었지만 사실을 페어프로그래밍 아이디어가 모든 구성원들과 동적으로 결성되는 방법론이라는 것을 깨닫고 그 이유를 알게 되었다. 페어프로그래밍이 뭐지? 페어 프로그래밍? "오 이런 세상에, 이런거면 너무 싫어" 페어 프로그래밍이 무엇인지 알아보자. 원론적인 내용은 Software Engineering 8th Edition의 페어 프로그래밍 챕터를 읽고 정리하였다. 소프트웨어 개발 방법론인 애자일 개발 방법론에서 익스트림 프로그래밍 (XP: extreme programming)이라는 것이 있다. 이 접근법은 반복적인 개발과 같이 인식된 좋은 실무관행과 고객의 참여를 극한 수준까지 ..

[우아한테크코스] 2주차 과제 피드백 후기

이번 과제는 사다리 타기를 구현하는 프로그램이다. 몇 가지 중요했던 피드백들을 정리해 보았다. 일급 컬렉션 기존 코드 public class Players { private List players; public Players() { players = new ArrayList(); } public void add(Player player) { if (checkDuplicateName(player)) { throw new IllegalArgumentException("이름은 중복될 수 없습니다"); } players.add(player); } public void addAll(List players) { this.players = players; } private boolean checkDuplicateNa..

[우아한테크코스] 2주차 후기 - 어서와 TDD는 처음이지?

우아한테크코스 2주차 후기 날짜 TODO 추가 공부 5/13 (월) 자동차 경주게임 피드백 - 5/14 (화) 강의 (TDD란 무엇인가) 버전 관리 5/15 (수) 페어 프로그래밍 (계산기, 사다리 타기) 책-객체지향과 디자인패턴 5/16 (목) 페어 프로그래밍 (사다리 타기), 사물함 배치 프로그램 책-객체지향과 디자인패턴 5/17 (금) 강의 (피드백), 페어 프로그래밍 (과제 마무리) 일급 컬렉션 5/18 (토) 테니스 시합 참가, 피드백 수정, 캡스톤 개발 - 5/19 (일) 피드백 수정, 캡스톤 미팅 - 2주차 진행 테이블이다. 이번 주는 주말까지 쉴 시간이 없어서 조금 피곤했다. 주말에 추가 공부를 하고 싶었지만 도저히 시간이 되지 않았다. (물론 잠을 더 안자면 되긴 하는데 체력 관리를 위해..

객체 지향이란 무엇인가 - 절차지향과의 차이점

객체지향 개념 간단 정리 본 내용은 "개발자가 반드시 정복해야할 객체 지향과 디자인 패턴 - 최범균" 을 읽으며 정리한 내용입니다. 1. 절차 지향과 객체 지향 1.1 절차지향 절차지향이란 프로시져(procedure)로 프로그램을 구성하는 기법이다. 프로시져는 대체로 데이터를 중심으로 구현한다. 단점은 데이터 타입이나 의미를 변경해야 할 때, 함께 수정해야 하는 프로시저가 증가하는 것이다. 1.2 객체 지향 객체는 자신만의 데이터와 프로시져를 갖는다. 객체는 자신만이 기능을 제공하며, 각 객체들은 서로 연결되어 다른 객체가 제공하는 기능을 사용할 수 있다. 2. 객체 2.1 객체의 핵심은 기능을 제공하는 것 객체 지향의 가장 기본은 객체이다. 예를들어, 소리 크기 제어 객체가 있다고 생각하면 이 객체가 ..

프로그래밍 2019.05.15

[우아한테크코스] 1주차 과제 피드백 후기

우아한테크코스 1주차 피드백 매주 1대1로 피드백을 받을 수 있는 너무나 좋은 기회가 있다. 이번 분기에 배정된 리뷰어는 자바지기님 이다. 자바지기님의 리뷰를 1:1로 받는 다는 것은 테니스로 따지면 페더러와 공을 쳐볼 수 있는 기회라고 생각하면 된다. 페더러와 공을 치고 포핸드를 교정받는 느낌이랄까. 1주차 과제에 대한 피드백 내용이다. 리뷰는 깃허브를 통해 다음과 같이 이루어진다. 메서드 반환형에 대해 기존 나의 코드 public List getWinners() { gameResult = new GameResult(cars); return RacingCarUtil.convertCarToCarDto(gameResult.getWinnerCars()); } Game이라는 클래스에서 GameResult라는 ..

[우아한테크코스] 1주차 후기 - 단위테스트에 대해서

우아한테크코스 1주차 후기 날짜 TODO 추가 공부 5/7 (화) OT 5/8 (수) 강의 (단위 테스트란 무엇인가) 어떻게 공부할 것인가 고민... 5/9 (목) 페어 프로그래밍 (자동차 경주 게임 구현, 계산기 프로그램 구현 -> 단위테스트 중점) JUnit5 공식 문서 정리 5/10 (금) 강의 (피드백), 페어 프로그래밍 (과제 마무리) AssertJ 공식 문서 정리 1주차 진행 테이블이다. 내용은 통합하여 정리하려고 한다. OT 후기 새로 지은 교육장에 처음 간날 오티가 진행이 되었다. 조끼리 앉았지만 그 날만 해당이 되는 부분이었다. 아이스 브레이킹 시간을 갖고 교육이 어떻게 진행되는지 전반적인 설명과 Q&A를 가지는 시간이었다. 다들 열정이 가득해보였다. 첫 강의: 단위 테스트란 무엇인가 첫..

[AssertJ] JUnit과 같이 쓰기 좋은 AssertJ 필수 부분 정리

AssertJ가 core document를 새로운 github.io로 이전했네요 :) . 본 글은 AssertJ 공식 문서를 핵심 챕터를 선정하여 번역하며 정리한 글 입니다. http://joel-costigliola.github.io/assertj/assertj-core.html AssertJ란 무엇인가 AssertJ는 많은 assertion(직역: 주장, 행사)을 제공하는 자바 라이브러리이다. 에러 메세지와 테스트 코드의 가독성을 매우 높여주고 각자 좋아하는 IDE에서 쓰기 굉장히 쉽다. junit에서 제공하는 assertEquals에 비해 훨씬 가독성이 올라간다. junit의 assertEquals의 인자순서는 헷갈릴 가능성이 크다. assertEquals(expected, actual); asse..

[JUnit5 개요] Meta 애노테이션과 Assumption, test 실행 순서에 대해

JUnit5 개요 JUnit5 User Guide Junit 공식 문서를 보며 정리해 보았다. 각 챕터 번호는 해당 공식 문서에 매칭되는 번호이다. https://junit.org/junit5/docs/current/user-guide/#overview-what-is-junit-5 1.1 JUnit5란 무엇인가 JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform : JVM에서 돌아가는 테스트 프레임워크이다. 테스트 엔진 API 으로도 정의되며 더욱이 Gradle과 Maven, JUnit4의 빌드 플러그인을 만들 수 있고 커맨드 라인에서 돌아가는 콘솔 런쳐를 제공한다. JUnit Jupiter : JUnit5에서의 테스트 작성을 위..

반응형