전체 글 164

공부공부-230528

벌써 28일이요..? 자바 문자열 공백 포함 출력 https://kkh0977.tistory.com/356 의외로 간단했다.. String nayoon = "nayoon"; System.out.printf("%10s.", nayoon); // ---- // nayoon. System.out.printf("%-10s.", nayoon); // ---- // nayoon . 문자열 제거 문자열 제거는 trim이나 strip(java 11 이후..)을 쓰면 모든 공백을 제거한다. https://hianna.tistory.com/526 근데 위 블로그를 보면 공백의 종류가 의외로 많다.. 스페이스, 탭.. 등등 그리고 trim은 특정 공백만 제거 가능한 반면 strip은 모든 공백을 제거하는 것이 가능하다. s..

공부공부 2023.05.28

공부공부-230521

Spring Event https://wildeveloperetrain.tistory.com/217 스프링 이벤트를 사용하는 이유는 '의존성 줄이기를 위함'이라고 합니다.. 팩토리 메소드 패턴 https://sun-22.tistory.com/84 장점 1. 객체 생성에 대한 명시적 선언이 가능하므로 코드를 보는 사람들의 이해도가 높아진다. 2. 호출할때마다 인스턴스를 새로 생성하지 않아도 된다. 싱글톤 패턴을 위해 사용된다. 3. 반환 타입의 하위 타입 객체를 반환할 수 있다. 4. 입력 매개변수의 개수에 따라 다른 클래스 객체를 반환할 수도 있다. (객체 생성 코드에 로직을 추가할 수도 있다는 것으로 이해..) 5. 정적 팩토리 메소드를 사용하는 시점에 반환할 클래스 객체가 존재하지 않아도 된다. 단점..

공부공부 2023.05.21

공부공부-230520

4번째 클코 정리 (이렇게 하지 않으면 죽어도 정리를 안한다.. 지독한 놈..) 클코에서 이야기한 좋은 개발자의 개발 방향은 1. 프로그래밍의 기본틀은 OOP 기반(class 기반) 2. 메소드 내부 구현은 FP 지향 3. 객체의 상태관리는 immutable object를 지향 그런데.. 우리가 한동안 열심히 OOP로만 개발하고 살아왔기 때문에 FP를 연습하는 것은 생각보다 쉽지 않은데.. FP를 제대로 연습하고 싶다면 극단적으로 FP를 지향하는 언어로 연습하는게 좋고.. 이러한 언어에는 리습이나 JVM 언어인 clojure와 같은 언어가 있다. 아무튼 직접 공부해보면서 FP를 연습하는게 좋다고 한다.. 변경 가능성이 있을 것은 인터페이스로 분리한다. 인터페이스로 분리 시 변경에 빠르게 대응할 수 있다...

공부공부 2023.05.20

공부공부-230516

IntStream range https://m.blog.naver.com/ding-dong/221386518751 range(1, 10) -> 1 ~ 9까지 rangeClosed(1, 10) -> 1 ~ 10까지 위의 블로그에서 이야기해주길 - IntStream을 잘쓰면 for 반복문과 같은 코드를 간결하게 바꿀 수 있다. - 하지만 항상 IntStream을 쓰는게 간결한 코드로 이어지는 것은 아니다. - 상황에 맞게 잘 써보자. 리스트 내 중복 요소 체크 https://doing7.tistory.com/145 Stream을 이용한 중복 체크 시, distinct()를 사용해서 중복을 없애고 count()로 개수를 체크해서 중복여부를 확인한다. List arr의 중복 요소 체크 시, arr.size() ..

공부공부 2023.05.16

공부공부-230508

package-private https://hbase.tistory.com/4 패키지 접근 제어자는 private, default, protected, public이 있는데 그 중에서 default가 package-private이다. default는 같은 패키지 내에서만 호출가능하고 이외에는 private처럼 취급된다. 메소드나 클래스에 접근 제어자가 정의되어있지 않다면 default이다. 테스트 코드에서도 상용 코드와 동일한 디렉토리에 있다면 호출가능하다. src/main/java/game/baseball 디렉토리에 정의된 Ball 클래스의 메소드가 default 접근 제어자를 가진다면 src/test/java/game/baseball 디렉토리의 테스트 클래스에서 Ball 클래스의 메소드를 호출할 수 ..

공부공부 2023.05.08

공부공부-230506

Stream API sum https://bcp0109.tistory.com/299 Stream API를 이용해서 Collection의 합을 구하는 방법은 2가지가 있다. reduce, sum 둘 중 하나를 사용하는 것인데 reduce(초기값, 연산) 초기값을 시작으로 Collection을 돌며 입력한 연산을 진행한다. Stream.of(1, 2, 3).reduce(0, Integer::sum); sum() sum 메소드를 사용할 때는 IntStream, DoubleStream, LongStream과 같은 기본형(int, double, long) 특화 스트림을 사용해야 한다. 그래서 mapToInt, mapToDouble, mapToLong 메소드를 사용해서 기본형을 객체로 수정한 후 연산을 진행한다. ..

공부공부 2023.05.07

공부공부-230505

어린이날 클래스 분리 생성자 자바 클래스 안에는 다수의 생성자를 만들 수 있다. 주 생성자 하나에 다수의 부 생성자를 가지고 있는 것이 좋다. 이때, 부생성자는 반드시 주생성자를 호출하는 식으로 구성해야 중복이 없다. 또한, 주생성자는 생성자 중 가장 아래 구성하는 것이 관례이다. 메소드 클래스 안에는 5~10개의 생성자와 2~3개의 메소드를 만드는 것이 좋은데, 많은 메소드를 가진다는 것은 단일 책임 원칙을 위반하고 여러 가지의 역할을 하고 있을 가능성이 높다. 생성자와 메소드 적은 수의 메소드와 상대적으로 많은 생성자가 있는 클래스는 곧 응집도가 높고 견고한 클래스라는 뜻이다. private 메소드 테스트 테스트 메소드를 작성하다보면 private 메소드를 테스트해야하는 순간이 찾아온다. privat..

공부공부 2023.05.05