우아한테크코스

⭐ 레벨1 인터뷰를 준비하며 드디어 약 두 달 간의 우테코 레벨1 생활을 마치고, 오늘 이리내, 오잉, 제나와 만나서 인터뷰를 준비하고 있다. 그동안 학습한 내용들을 바탕으로, 짧게 키워드를 정리해 보았다. 키워드에 대해 질문하고 싶은 것이 있다면 댓글로 남겨주세요! 💋 자동차 경주 미션 ✔ 페어 프로그래밍 페어 프로그래밍은 페어와 함께 설계와 구현의 모든 과정을 진행하는 방식이다. 페어 프로그래밍을 통해 생산성이 향상되는 경우가 많다고 한다. ✔ 단위 테스트 단위테스트는 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 것이다. ✔ 네이밍의 중요성 네이밍은 너무 짧아도 좋지 않다. 정확하게 역할을 설명하는 이름을 지어주는 것이 좋다. 이름을 통해서 의도를 드러내는 것이 좋다. ..
💋 TDD에 대한 생각 TDD를 처음 적용해서 설계를 할 때는 굉장히 어려웠다. TDD의 아이러니 중 하나는 테스트 기술이 아니라는 점이다. TDD는 분석 기술이며, 설계 기술이기도 하다. - 켄트벡, Test Driven Development by Example 중 특히 처음에는 이 말이 너무너무 어려웠다. 나에게 TDD는 테스트 코드를 먼저 짜는 것 뿐이었다. TDD가 설계 기술이라는 것을 인지하지 못한 채, 테스트 코드부터 짜기 위해서는 내가 테스트하고 싶은 메서드의 시그니처(파라미터, 반환값의 타입)는 반드시 알아야 했다. 굉장히 작게 어떤 메서드를 테스트한다는 생각만 가지고 있어서 오히려 더 설계를 방해했던 것 같기도 하다. 하지만 지금 느끼는 TDD는 다르다. 우선, 설계부터가 중요하다. 한 ..
· JAVA
💋 인트로 우아한테크코스 미션 중 블랙잭 미션을 진행할 때, 굉장히 핫한 주제가 있었다. 바로 상속과 조합이었다. 조합에 대해 처음 들어보았고, 찾아보려 검색했지만 이펙티브 자바에서 다루는 아이템 18 상속보다는 컴포지션을 사용하라에 대한 내용 외에 컴포지션에 대해 설명하는 내용을 찾아볼 수가 없었다. 그래서 직접 써보기로 했다! 👍 조합? 컴포지션? 조합 == 컴포지션 같은 말이다. 상속은 문제가 많다. 잘 사용하면 되는 일이지만, 상속을 하면서 내부 구현을 외부에 드러내지 않고 사용하기는 굉장히 어렵다. (상속의 문제점은 이 포스팅의 주제가 아니니, 더 구체적으로 설명하지 않겠다.) 이 포스팅은 상속이 좋다, 조합이 좋다를 강조하는 포스팅이 아니다. 상속을 사용하다가, 상속의 단점을 크게 느껴 조합을..
· JAVA
💋 인트로 지난주 우테코의 강의 주제는 함수형 프로그래밍이었다. 하지만 잘 이해가 되지 않았다.... 또 이리내와 함께 한 람다와 스트림 발표에서, 마코에게 질문을 받았다. "왜 stream의 최종연산 forEach에서 출력 외에 외부 변수에 변화를 주는 작업을 하면 안되나요?" 이 질문에 대답은 이펙티브 자바 아이템 46에 나와 있다. 아마 읽어도 잘 와닿지 않을 것이다.... 1. 스트림은 그저 또 하나의 API가 아닌, 함수형 프로그래밍에 기초한 패러다임이다. 2. 스트림 패러다임의 핵심은 계산을 일련의 변환으로 재구성하고 각 변환 단계는 이전 단계의 결과를 받아 처리하는 순수 함수여야 한다. 3. 순수 함수란 오직 입력만이 결과에 영향을 주는 함수를 말한다. 다른 가변 상태를 참조하지 않고, 함수..
2단계까지 구현한 '체스말을 움직일 수 있는' 체스판에서, King이 잡히면 게임을 종료하고, 그 전에 게임의 점수를 계산할 수 있는 기능을 만드는 것이 3단계였다. 👍 Controller 코드 이쁘게 정리하기 우선 나는 2단계까지 컨트롤러에서 명령을 받는 로직을 잘 구현하지 않았는데, start, end, status는 명령을 쉽게 검증할 수 있지만 move b2 b4와 같은 명령은 명령어가 move인지를 먼저 검사한 후에 뒤에 따라오는 b2, b4와 같은 positions도 검증해야 하기 때문에 조금 어렵게 느껴졌다. 허브 호출! 쫌 잘한다고 소문이 좀 도는 허브를 한 번 데려와봤다. 명령어를 처음부터 List의 타입으로 받으면 저장이 될테니 그렇게 바꾸면 된다는 것! 허브는 발생할 수 있는 상황에 ..
· JAVA
평상시에 예외를 사용할 때는 아무 생각 없이 throw new IllegalArgumentException();으로 처리하곤 했다. 우테코에서 예외에 대해 다루는데, 뭔가 아리까리...? 용어부터 헷갈리기 시작했다. 나처럼 그런 분들이 혹시 또 있을 것 같아서 정리해봤다! 잘못된 정보는 언제나 댓글로 달아주세요! 💋 프로그램의 오류란? - 프로그램이 오작동 또는 비정상적으로 종료되는 원인을 프로그램 오류라고 한다. 💋 에러와 예외의 차이점? 에러는 코드를 수정하는 것으로 수습할 수 없는 심각한 오류이며, 일단 발생하면 복구가 어렵다. 예) OutOfMemoryError, ThreadDeath, StackOverflowError 등 예외란 비교적 덜 심각한 오류로, 코드 수정을 통해 해결할 수 있다. 오늘..
· JAVA
우아한테크코스 5기 미션 도중 개행에 관련한 피드백을 받았다. 나의 최초의 코드는 아래와 같다. System.out.println("실행결과\n"); 실행결과라는 말을 출력하고 나서 줄바꿈한다! 명쾌한데 뭐가문제징...? 💋 문제점 String에서 줄바꿈(newline)은 Window에서 \r\n, Linux에서 \n으로 서로 다르게 표현된다. 따라서 문자열 사이에 함부로 escape 기호인 \n을 사용하는 것은 다른 종류의 OS에서 예상하지 못한 동작이 될 수 있다. 이때 좋은 해결책이 될 수 있는 것을 소개한다. 아래에서 소개하는 항목들은 모두 프로그램이 실행되는 OS의 개행 문자를 반환한다고 한다. 따라서, Windows 및 Linux에서 실행 시, 동일한 결과를 출력한다! 그렇다고 해서 Syste..
깃짱
'우아한테크코스' 태그의 글 목록