본문 바로가기

JAVA22

자바 플레이그라운드 with TDD, 클린코드(4) 4/21 문자열 계산기를 다시 만들었다. 값을 공유할 때 변수에 static붙이고 인스턴스 변수를 쓰지 않으면 메서드에 static 붙인다고 알고 있었다. 그래서 메서드에 static을 다 갖다 붙였다. 뭔가 잘못된 느낌이었다. static쓰니까 객체생성을 하나도 안했다. 나는 인스턴스 변수를 쓰지 않고 있었고 값들은 매개변수로 계속 넘기고 있었다. 이건 객체지향적인 코드가 아니었다. 객체지향 프로그래밍으로 유틸리티 클래스를 대체하자. | Mimul Tech log 유틸리티 클래스를 안써본 사람은 거의 없을겁니다. 유틸리티 클래스가 좋다, 나쁘다는 논쟁꺼리지만, 객체지향의 관점에서 볼때 그래도 생각해볼 꺼리가 된다고 생각해, OOP Alternative to Utility Cl www.mimul.com .. 2022. 6. 4.
자바 플레이그라운드 with TDD, 클린코드(3) 자바의 정석 1권의 조건문과 반복문, 배열, 객체지향 프로그래밍, 예외처리, java.lang패키지와 유용한 클래스까지 읽고 문자열계산기2, 자동차 경주 게임을 만들었다. 문자열 계산기는 테스트코드가 만들어져 있었고 기능 목록도 정리되어 있어서 테스트코드를 통과하도록 기능을 구현하다보니까 하나씩 만들어 갈 수 있었다. 사실 자동차 경주 게임은 그냥 기능 구현하는 것도 나는 어려웠다. 다른 사람들이 해놓은 것들을 참고하려고 검색하니까 우테코 합격하신분들의 코드를 볼 수 있었는데 생각하는 수준의 차이가 달라서 자괴감이 들었고 다른사람들 코드 읽는 것도 어려웠다. 테스트코드는 일단 냅두고 기능 구현만 해봤는데 책을 읽었어도 public private static은 내멋대로 붙이고 있고 객체생성은 어디서 해야할.. 2022. 4. 16.
자바 플레이그라운드 with TDD, 클린코드(2) 문자열 계산기와 숫자야구까지 1차로 만들었다. 예외는 고려하지 않고 여러 기준들을 생각 안하고 짠 코드들이라 고쳐야할 부분이 많지만 내 힘으로 테스트코드 작성하고 메서드 만들고 객체생성해서 프로그램하나 만들었다는게 뿌듯하다. class파일로만 생각했었는데 얘네들은 객체였다. 구현하면서 아직 자바문법도 제대로 모르고 있었다는 걸 깨달았다. 다시 자바의 정석으로 돌아갔다. static, 접근제어자, 생성자 등 강의를 따라칠땐 생각없이 쳤는데 제대로 모르고 있었다. 스프링을 할 때가 아니었다. 어려웠던게 기초도 안된 상태로 외우려고 해서 그랬나싶다. 당분간은 이거에 집중해야겠다. 만들면서 궁금해지니까 책 내용이 이제서야 눈에 들어왔다. 그래서 다시 정독하는 중이다. 다시 보니까 새롭다. 객체지향 사실과 오해,.. 2022. 4. 11.
자바 플레이그라운드 with TDD, 클린코드 다시 처음부터 시작한다는 마음으로 만들어 가면서 배우는 JAVA 플레이그라운드 구구단부터 다시 시작했다. 그리고 자바 플레이그라운드 with TDD, 클린코드 듣기전에 자바 문법을 제대로 알고있나 싶어 백준에서 단계별로 입출력 사칙연산, 조건문, 반복문, 1차원배열, 함수, 문자열까지 풀었다. 학습테스트 실습은 그래도 뭔가 된 것 같은 느낌인데 문자열 계산기부터는 뭘 해야 할지 막막했다. 그래서 냅다 구현만 해놓고 TDD가 뭔지 찾아봤다. TTD란 TDD란? 테스트 주도 개발 - 하나몬 TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. hanamon.kr 테스트 주도 개발이라는 것만 알고있었지 실패하는 테스트 코드를 먼저 작성 테스트 코드를 성공시키기 위한 실.. 2022. 4. 7.
접근제어자와 static public : 접근 제한 없음 protected : 동일한 패키지 내에 존재하거나 상속받은 클래스 내 default : 동일한 패키지 내 private : 자기 자신의 클래스 내 static은 변수나 메소드에 자주 변하지 않는 일정한 값이나 설정 정보 static이 붙은 함수에서는 인스턴스 변수를 사용할 수 없다. https://wikidocs.net/232 07-02 접근제어자 (Access Modifier) 자바는 접근제어자를 사용하여 변수나 메소드의 사용 권한을 설정할 수 있다. [TOC] ## 접근 제어자 변수나 메소드의 사용 권한은 다음과 같은 접근 제어자를 사용 ... wikidocs.net https://wikidocs.net/228 07-03 정적(static) 변수와 메소드 이번에는 스.. 2022. 3. 30.
람다와 스트림 - 람다식: 함수(메서드)를 간단한 식으로 표현 new Object(){ int max(int a, int b){ return a>b? a:b; } } (a,b)->a>b?a:b 함수는 클래스에 독립적, 메서드(자바)는 클래스에 종속적 반환값이 있는 경우, 식이나 값만 적고 return문 생략가능 ;안붙임 매개변수 타입 생략가능 람다식은 익면 함수가 아니라 익명 객체이다. 람다식(익명 객체)을 다루기 위한 참조변수가 필요 참조변수 타입은? - 함수형 인터페이스: 단하나의 추상메서드만 선언된 인터페이스 interface MyFuntion{ public abstract int max(int a, int); } MyFunction f = new MyFunction(){ public int max(int a, .. 2022. 3. 10.