1. 1주차 피드백 정리피드백은 공통 피드백, 코드 리뷰, 대면 스터디에서 얻은 피드백을 모두 정리했다. 뿐만 아니라 다른 사람들의 코드를 보며 나도 고려해보면 좋을 것 같은 내용들도 정리했다. Git으로 관리할 자원을 고려하자.커밋 메시지를 의미 있게 작성하자.공백 라인을 의미 있게(4개의 빈 칸을 들여쓰기 단위로) 사용하자.각 클래스와 메서드의 행위를 더 작게 분리하자.메서드 네이밍에 더 많은 시간을 할애하자.확장성을 위해 MVC 패턴을 적용해보자.확장성을 위해 Output을 담당하는 클래스에서 안내 메시지 출력 기능을 담당해보자.입・출력 객체 생성은 Controller 계층으로 분리해보자.요구사항을 더 꼼꼼하게 읽고, 이에 대한 검증을 확실히 구현하자.예외 케이스를 더 꼼꼼하게 많이 생각해보고, 이..
현재의 나는 Comfort Zone에 머물러 있는 것 같다. 부족함을 탓하고, 배움을 갈망하지만 실천하지 않았다. 스스로가 바뀌길 원한다면, 스스로 움직여야 한다. 한 번에 원하는 곳에 도달하기는 쉽지않다. 어느 정도 길을 그려놓고, 그 안에 작은 목표들을 세워서 Fail fast 하자. 실패하고, 반복하고, 피드백을 받는 과정을 통해 프리코스 안에서 나만의 학습법을 찾고, 부족했던 부분들을 조금씩 채워나가고 싶다. 프리코스는 참여자들에게 최소한의 학습 목표와 요구사항을 던져 놓는다. 물고기를 손에 쥐어주는 것이 아니라 물고기를 잡는 법을 알려준다. 물고기를 잡는 법을 알려주더라도, 사람마다 한 마리의 물고기를 잡을 때까지의 시간과 노력은 제각각이기 마련이다. 스스로 물고기를 잡을 때까지 나만의 방법을..
이제 0.0 버전을 점차 개선해나가보려 한다. 따라서 리팩토링을 해보았다.1. 리팩토링(1) 클래스 분리 Application 클래스 안에 구현했던 코드를 개선해보고자 클래스를 분리했다. SOLID 원칙 중 하나인 SRP(단일 책임 원칙)를 따르고자 했기 때문이다. 또한 '좋은 코드, 나쁜 코드'에 따르면 클래스는 자신의 기능에만 충실해야 한다. 따라서 입력, 출력, 계산 기능에 맞게 클래스를 세분화 했다. (2) 클래스 네이밍 구글 자바 스타일 가이드에 따르면 클래스 명은 명사 또는 명사구로 작성해야 한다. 따라서 InputHandler, OutputHandler, Calculator로 네이밍 했다. https://github.com/JunHoPark93/google-java-styleguide Git..
1일차 다짐처럼 우선 기능 요구사항 및 프로그래밍 요구사항을 만족하는 0.0 버전을 구현했다. 1주차 미션의 핵심 기능은 '계산기'다. 아래는 구현 과정에서 했던 고민이다.1. Console 라이브러리 분석아래는 우아한테크코스에서 제공한 Console 라이브러리이다.readLine()콘솔에서 한 줄의 입력을 받아 문자열로 반환하는 메서드close()scanner가 생성되어 있는 경우, 이를 닫고 다시 null로 설정하는 메서드getInstance() 메서드scanner가 아직 생성되지 않았을 경우 Scanner(System.in)으로 초기화하고, 생성된 객체를 반환하는 메서드import java.util.Scanner;public class Console { private static Scanner..
지금 나에게 필요한 건 그저 ‘잘’하는 것이 아니다. 내가 진정 백엔드 개발자가 되고자 한다면, 가장 많이 사용해보았던 Java의 기초를 아는 것이 중요하다고 판단했다. 그리고 작고 작은 키워드에도 “왜?”라는 질문을 던지며, 내가 좋아하는 프로그래밍을 평생 할 수 있는 나만의 학습법을 찾고 싶다. 우아한테크코스를 지원한 이유는 함께하는 사람들이 있다는 것이 가장 큰 이유였다. 망망대해인 바다 한 가운데서 종이배를 타고 가더라도, 때론 물을 퍼내기도, 때론 나무를 덧붙일수도 있다. 기나긴 여정 끝에 발견한 섬에서 이미 정착해있는 다른 사람들과 배를 고칠 방법을 의논할 수도 있다. 때론 조언을 얻기도, 때론 조언을 줄 수도 있다. 내가 생각할 수밖에 없는 환경에 놓여져 의식적인 연습을 하고 싶었다. 이전..