자바/초록스터디 10

초록 스터디에 참여하게 된 계기와 초록 스터디를 하며 느낀점

어찌하여 좋은 기회로 초록 스터디에 참여하게 되었지만, 중단하게 되었다. 내가 자의로 중단한 것은 아니고, 같이 스터디 하는 분이 거의 안하셔서 우리 스터디 그룹이 짤리게 되었다...ㅜㅜ(그래도 로또까지는 어찌저찌 했다.) 그래서 멘토님이 하는 사람들만 따로 모아서 스프링 미션 알려주신다고 하셨다!! 불행 중 다행...나이스.. - 초록스터디 시작한 계기   개학 전 겨울 방학 때, 스프링을 공부하기 위해 인프런 강의를 들으며 느낀점은 스프링 개념부터 다시 잡고 자바부터 제대로 할 줄 알아야겠다는 생각이 들었다. (정말 알아들을 수 있던 것이 1도 없었다 ㅋㅋ.. ) 스프링 개념이야 공식문서나 여러 참고하면서 배우겠지만 자바만큼은 정말 답이 없었다. 자바 문법이야 모두가 할 줄 아는거고 문법 안다고 해서..

(9)초록스터디 로또 3,4 단계 최종 구현

이번 미션 진행하면서 dto, enum, interface 등 새로운 기술들을 많이 사용하였고 이에 따라 많은 피드백을 받을 수 있었다. 근데 정말 피드백이 너무 많아서 하나 하나 다 설명하기엔 양이 너어어어어~~~~무 많으므로 최종적인 코드를 첨부하고자 한다 !! start!*LottoContorllerpackage controller;import domain.*;import view.InputView;import view.LottoRankDto;import view.OutputView;import java.util.ArrayList;import java.util.List;public class LottoController { private static final int RESET_NUMBER =..

(7)초록스터디 로또 1,2 단계 테스트 코드 구현

이 글에서는 앞에 소개한 메서드에 대한 테스트 코드만 설명할 예정이다. 위에 사진과 같은 형식으로 나누어 테스트를 구현하였고, 이에 대해 소개하고자 한다.*FakeLottoNumberGeneratorpackage FakeRandomNumber;import domain.CreateLottoNumber;import java.util.List;public class FakeLottoNumberGenerator implements CreateLottoNumber { @Override public List getRandomLottoNumber() { return List.of(1,2,3,4,5,6); }} 앞 글에서 설명한 인터페이스를 상속받아 랜덤 로또 넘버가 잘 생성되는지 검증하기..

(6)초록스터디 로또 1,2 단계 구현

로또 미션의 전체적인 틀은 다음과 같다.  로또 미션은 클린 코드를 목표로 진행되는 미션인 것 같다.  원래는 레이싱카 미션이 앞에 있는데 초록스터디 하기 전에 멘토님과 다른 스터디를 진행하면서 레이싱카를 구현했기에, 레이싱카 미션은 협의 하에 뛰어넘기로 하였다. 로또 1,2 단계 기능 구현 목록이다  이번 로또 미션에서는 일급컬렉션과 원시값 포장이 핵심으로 느껴졌다. 일급컬렉션에 대해서는 들어본 적 있지만, 원시값 포장은 나에게 너무 생소했다. 그래서 여러 블로그와 문서를 참고하여 일급컬렉션과 원시값 포장에 관한 개념을 익히고 기능 구현을 시작했다.로또 1,2 단계 기능 구현 도메인 객체는 다음과 같이 나누었다.  도메인 객체 하나 하나 뜯어보며 내가 썼던 코드를 복기해봐야겠다.* LottoContro..

(5)초록스터디 : 계산기 구현 PR 후기

이전에 작성한 코드를 토대로 멘토님께서 코드리뷰를 해주셨습니다.!!     이전 코드를 잘 구현하지 못한 것 같아 코드리뷰를 토대로 처음부터 코드를 다시 짤 각오까지 하였지만, 멘토님께서 위와 같이 말씀해주셔서 생각보다 놀랐습니다.  생각보다 컨벤션 오류가 많은 것 같아서 '자바 생활체조' 책을 사서 한 번 읽어볼 예정이다.  이 코드는 저번에 멘토님이 시범 보여주셨던게 기억나서 한 번 사용해 보았다. 이에 대해서 멘토님께서 왜 사용하였는지 물어봐주셨고, 다음과 같은 답변을 남겼다.  네이밍 부분에서 지적을 많이 당했고, 네이밍 하는게 생각보다 어렵다고 느껴졌다. 네이밍에 자료형을 사용하는 것은 좋지 않다는 얘기를 멘토님께 들어서, 다음에 참고하여 코드를 작성해야겠다. 근데 왜 자료형을 사용하는 것이 좋..

(4)초록스터디 step1 : 문자열 계산기 구현과 JUnit5 테스트

**주의사항** 모든 코드는 내 생각을 바탕으로 작성하였으며, 완벽하지 않을 수 있음. 참고해주시면 감사하겠습니다~~  문자열 계산기 기능 요구사항은 다음과 같다.먼저, MVC 패턴으로 구현하는 것을 목표로 하였고 의존성을 최대한 만들지 않고자 하였습니다.파일 형식은 이런 식으로 만들었습니다. 이제 각 파일을 하나 하나 뜯어봅시다!!* InputViewpackage view;import java.util.Scanner;public class InputView { private static final Scanner input = new Scanner(System.in); public String getString() { return input.next(); }}InputView..

(3)초록스터디 step1 - 초간단 계산기 구현: 계산기 MVC 패턴 구현, JUnit5 테스트 적용

드디어 !! Junit5 단위 테스트 적용할 시간이다..! 빨리 테스트 구현해보고 싶움.일단 계산기는 다음과 같이 구현했따.package domain;public class Calculator { final int DO_NOT_BE_DIVIDE_NUMBER = 0; public int add(int num1, int num2) { return num1 + num2; } public int subtract(int num1, int num2) { return num1 - num2; } public int multiple(int num1, int num2) { return num1 * num2; } public int divide..

(2)초록스터디 step1 - 초간단 계산기 구현 : 계산기 구현과 JUnit5

앞서 블로그에 소개한 순서대로, 공부를 진행해보겠다. 1. 계산기 메서드 구현public class Calculator { public static int add(int num1, int num2) { return num1 + num2; } public static int subtract(int num1, int num2) { return num1 - num2; } public static int multiple(int num1, int num2){ return num1*num2; } public static int divide(int num1, int num2){ return num1/num2; }} 일단은 요..

(1)초록스터디 시작! step1 - 초간단 계산기 구현

초록스터디를 시작해 보았따.  step1 - 초간단 계산기 구현 과정은 다음과 같다.1. 계산기 구현 2.Junit5 단위 테스트 학습3. 계산기 테스트 진행1. 문자열 계산기 구현2. AssertJ 학습3. 문자열 계산기 테스트 진행 전체 코드 리팩터링 위와 같이 크게 세 단계로 진행되는 것 같고, 처음이지만 열심히 학습해보면서 Junit5와 AssertJ가 무슨 차이점을 가지고 있는지 알아봐야겠다.  내가 알던 자바는 그냥 문법 위주였는데, 이번 기회를 통해 일급 컬렉션, 원시값 포장 같은 개념을 익히고 학습하고 싶다.