본문 바로가기
반응형

코딩 교육 기관21

우아한 테크코스 프로 - 프리코스 2주차 1주차에 이어 2주차도 진행이 되었는데, 진행하면서 느낀점을 적어보려고 한다. 느낀점 Random 값을 어떻게 테스트해야할까? 나는 자동차에 관련된 부분을 Car 클래스가 담당하도록 하고 이동 거리에 대한 부분은 play() 메서드가 담당하도록 하였다. 움직일 수 있는 조건에 해당하면 거리를 1 증가시키게 해두었다. 거리는 Random 값으로 나온 수가 지정한 값 이상일 경우에만 증가할 수 있도록 하였다. 그러다보니 테스트를 작성할 때 Random 값을 고정할 수 없어 테스트를 돌릴때마다 성공, 실패 되어버리는 문제가 있었다. '어떻게 하면 Random 값을 테스트할 수 있을까?' 고민하다가 canMove 메서드 안에서 랜덤값을 생성하지 말고 아래와 같이 랜덤한 값을 바깥에서 생성한 뒤 파.. 2022. 10. 10.
우아한 테크코스 프로 - 프리코스 1주차 좋은 개발자로 한 단계 더 성장하고 싶다는 니즈가 계속 있었는데, 운이 좋게도 해당 시기에 우아한 테크코스 프로 과정을 모집 중이어서 바로 신청했다. 지금은 프리코스 과정을 통해 과제 미션을 진행하고 있는데, 과제를 진행하면서 느낀 점을 적어보려고 한다. 느낀점 indent depth 를 2가 넘지 않도록 구현한다 과제를 진행하면서 요구되는 기본 사항이 있었는데, 그중에 depth를 1까지만 허용한다.는 규약을 지키기가 어려웠다. 사실 실무에서는 depth에 대해서 깊은 고민 없이 구현했었기 때문에 더 어려웠던 것 같다. 일반적인 상황에서는 메서드 분리를 통해서 depth를 줄일 수 있었지만, 아래 코드에서 고민을 정말 많이 했다. Enum 의 값을 values() 로 순회하면서 state 가 일치하는 .. 2022. 10. 2.
DAY 1 - 2 # GET / POST 방식 GET : 클라이언트에서 서버의 리소스를 가져올 때 POST : 클라이언트에서 서버에 데이터를 전송할 때 # Controller Controller가 뭔지 생소한 분들이 있을 것 같아 간단히 정의하면 다음과 같다. Controller : 사용자(Client)의 요청(Request)을 어떻게 처리(Handling) 할 지 결정하는 녀석 우리가 User에 대한 컨트롤러를 생성하기 위해서 클래스를 다음과 같이 만들었다. public class UserController { } 하지만 스프링은 해당 클래스가 컨트롤러인지 알 수가 없다. 스프링이 컨트롤러로 인식하게 하려면 애노테이션 @Controller를 사용하여야 비로소 이 클래스가 컨트롤러의 역할을 한다는 것을 의미한다. @Con.. 2019. 5. 4.
DAY 1 - 1 * 본 기록은 2018.11.12 (월)부터 미리 기록해 둔 내용이었으나 시간상의 부족으로 포스팅을 미뤄두다가 이제야 포스팅한다. 기존 기록에 추가적으로 현재 나의 생각을 덧붙여 글을 작성함을 알린다. 글의 오류가 있거나 궁금한 사항이 있으면 댓글로 피드백을 남겨주면 감사하겠다. 나만의 용어집을 만들어라! 책에 나오는 용어는 의미가 없다. 전문 개발자들이 만든 추상화된 단어로 구성되어 있으므로 개인별 주제 발표 발표를 준비하면서 해당 내용에 대해 좀 더 깊이 있게 이해할 수 있다. 3주차 부터 진행 (2018.11.26 (월)부터) 발표시간 20분 이내, QnA 10분 이내 필자는 빌드 도구인 Gradle에 대해 발표함. https://web2eye.tistory.com/31?category=689572.. 2019. 4. 17.
2018.11.01 (목) 코드스쿼드 16일차 SOLID 객체 지향의 5 원칙 객체지향의 5원칙(SOLID)을 제대로 알면스프링 에서 Dependency Injection (DI) 가 왜 필요한지 동기 부여가 확실히 됨 SRP (단일 책임 원칙) "어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다." - 로버트 C. 마틴 클래스를 역할과 책임에 따라 분리해서 각각 하나의 역할과 책임만 갖게 해라. OCP (개방 폐쇄 원칙) "소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하지만 변경에 대해서는 닫혀 있어야 한다." - 로버트 C. 마틴 즉 , 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀 있어야 한다. 는 의미 LSP (리스코프 치환 원칙) "서브 타입은 언제나 자신의 기반 타입으로.. 2018. 11. 11.
2018.10.29 (월) 코드스쿼드 15일차 stream 스트림을 활용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있다. 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓음. 데이터 소스를 추상화 한다는 의미는 데이터 소스가 무엇이든 간에 같은 방식으로 다룰 수 있게 되었다는 것, 코드의 재사용성이 높아진다는 것을 의미. 스트림은 데이터 소스를 변경하지 않는다. 스트림은 일회용이다. 스트림은 작업을 내부 반복으로 처리한다. 람다 (lambda) 람다는 익명 함수의 다른 표현이다. 즉, 함수는 함수인데 이름이 없는 경우를 의미한다. 인터페이스의 메서드가 1개이면 모두 람다 표현식으로 표현이 가능하다. @FunctionalInterface => 얘는 메서드를 하나.. 2018. 11. 11.