본문 바로가기
728x90

전체 글249

[이펙티브 자바]item4.인스턴스를 막으려거든 private 생성자를 사용하라. 정적 메서드와 정적 필드만을 담은 클래스를 만들고 싶을 때가 있다는데..util 클래스 같은걸 말하는걸까..그런걸 제외하고 만들어본 기억이 없네. 추상 클래스로 만들면 인스턴스화를 막을 수 없으니 private 생성자로 막아두자. public class TestClass { private TestClass() { throw new AssertionError(); } // ... } AssertionError -> http://cris.joongbu.ac.kr/course/java/api/java/lang/AssertionError.html AssertionError (Java 2 Platform SE 5.0) 지정된 객체로부터 파생한 상세 메세지를 지정해 AssertionError를 구축합니다. 상세 메.. 2023. 1. 13.
[이펙티브 자바]item3.private 생성자나 열거 타입으로 싱글턴임을 보장하라 싱글톤은 만드는 방식은 많다.DCL 방식의 싱글톤 또는 enum 싱글톤을 이용하자. 물론 싱글톤의 단점도 존재한다. 테스트보기가 힘들다. mock 객체를 사용하려면 해당 객체가 인터페이스를 구현하고 있어야 함. 자바 싱글톤과 스프링의 싱글톤은 다르다. 자바는 클래스로더에 의해서 만들어지고, 스프링은 스프링 컨테이너 (applicationContext)에 의해서 구현된다 역직렬화 할때 직렬화 == 역직렬화 비교를하면 false 일텐데, 이를 true 로 나오게끔 하고싶으면 override 는 아니지만,,그렇다고 override 가 아니라고 말하기도 뭐한 코드를 넣어야한다 아래코드는 @override 가 아님.하지만 역직렬화 할때 사용은 함. private Object readResolve() { retur.. 2023. 1. 11.
[이펙티브 자바]item2.생성자에 매개변수가 많다면 빌더를 고려하라 자바를 쓰면 롬복은 필수로 쓰는데, 롬복으로 @Builder 로 쓰면서 알고 있던 것을 다시한번 확인하는 경험. 순수 빌더 패턴 클래스 안 정적 내부 클래스 선언)ex Builder 내부 생성자와 build 메서드 호출시 return new **class 에 this 를 넘겨 return 함. 아무래도 생성자가 많다면, 아무래도 자바는 빌더패턴을 사용해서 반환하는게 더 낫지않나 생각함. Objects.requireNonNull() 를 잘 사용안하는데, 나중에 써봐야지. 오버라이드 목록을 보니, 익셉션 메세지를 넣을 수 있는 부분이 있네. 비슷한 Optional.of 도 참고해서 입맛에 맞게 사용하자~ https://emgc.tistory.com/124 단점1.@Builder 적용시 모든 파라미터를 받는 .. 2023. 1. 11.
[이펙티브 자바]item1.생성자 대신 정적 팩터리 메서드를 고려하라. 장점 이름을 가질 수 있다. 생성자로 호출하는게 아니라, 메서드 호출이라 좀 더 명확한 네이밍이 가능함. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 싱글톤 처럼 만들어서 반환하면 생성비용을 좀더 아낀다. ex)Integer.valueof 반환 타입의 하위 타입 객체를 반화할 수 있는 능력이 있다. 디자인패턴처럼 인터페이스를 상속받아 반환.생성자를 사용한다면 해당 클래스만 반환할 수 있지.. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 오잉 이거 팩토리패턴 아닌가.파라미터로 받은 값으로 분기처리 후 return 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. https://www.youtube.com/watch?v=8uryCPDcoqI&.. 2023. 1. 11.
맥(m1)에서 도커 + ubuntu18.04.5버전과 루비 2.2.10 설치 프로젝트상 불가피하게 아래 버전인 루비를 설치해야 해서, 도커 + 우분투 + 루비 설치를 진행 함. *openssl 설치가 매우 느린거 같다.(5번..) sudo docker run -it --device=/dev/kfd --device=/dev/dri --cap-add=SYS_RAWIO --device=/dev/mem --group-add video --network host --env DISPLAY=unix$DISPLAY --privileged --volume $XAUTH:/root/.Xauthority --volume /tmp/.X11-unix/:/tmp/.X11-unix kiritigowda/ubuntu-18.04:latest 1. apt-get update apt-get install -y \ .. 2023. 1. 11.
세계 최고의 인재들은 어떤 루틴으로 일할까? # 세계 최고의 인재들은 어떤 루틴으로 일할까? * 회의에 참석할 때는 자신의 입장을 분명히 밝힌다. * 참석자는 각자의 의견이 옳든 그르든 일단 자신의 의견을 뚜렷하게 밝혀야 한다. * 발언할 떄, 근거는 필수 * 결론부터 말한다. 결론과 함께 반드시 근거를 말해야 한다. ('Because') 논리적으로 사고하려면 결론과 근거의 관계를 명확하게 밝혀야 한다는 것. -> 결론과 근거를 화살펴로 연결했을 때 부자연스럽지 않은지 확인해 보자 * 상대와 의견이 다를 때는 근거에 주목한다. * 반론을 펼칠 때는 상대를 배려하기 위해 영어의 '완충표현' 을 꼭 사용한다 * ex)정말 흥미로운 관점이네요. 그런데 저도 한 가지 아이디어가 있는데요. * ex)음, 잠시 생각좀 해볼께요. 전 완전히 동의하기는 좀 어렵.. 2021. 12. 2.
백준 2562 자바 - 궁금증 for, for향상문.. int intArray[] = {3, 29, 38, 12, 57, 74, 40, 85, 61}; int maxV = 0; int maxIndex = 0; int index = 0; for(int v : intArray){ if(maxV < v){ maxV = v; maxIndex = index; } index++; } System.out.println(maxV); System.out.println(maxIndex); index를 쓸려니 거시기해서..찾아봤다 foreach loop를 굳이 써야하는지~ 결론 : ArrayList, Array는 for문을 사용하고(별차이는없다 사실).. LinkedList 는 forEach loof를 사용하자..차이가 크다. foreach는 내부적으로 iterator를 사용하.. 2021. 10. 19.
독일 자라직구(ZARA) 키즈 사이즈 TIP 자라에서 세일을 한다는 소식에 우리나라 사이트를 보니 이미 사이즈가 많이 빠졌다. 6월중순부터 시작했기떄문에 당연한것 ㅠㅠㅠㅠㅠㅠㅠ ​ ​ ​ ​ 혹시 몰라서 자라 독일 사이트를 그래도 재고가 좀 떠서 직구를 하기로 했다!!! ​ ​ ​ ​ ​ ​ ​ 우리 띵커벨은 8살 ♥ 128CM, 27KG정도로 뚱뚱하지도 마르지도 않은 딱 보기좋은 표준체형이다. 독일 키즈 사이즈 8(128CM) 또는 9(134CM)를 샀고, (그레이 니트 베스트는 내가 입으려고 13~14 (164cm) 샀지만.....) ​ ​ ​ ​ ​ ​ ​ (초가을에 입힐옷부터 내년에 입히려고 여름 블라우스까지 이것저것 구입함) ​ ​ ​ ​ ​ ​ 옷은 다들 넘 귀염귀염 ㅠㅠ 너무 맘에 든당 ♥ 그러나 일단 9(134cm) 사이즈 여름 블라.. 2021. 9. 11.
프라다 납작 파우치 (1NB400) 숄더백으로 리폼하기 ​ ​ 우연히 프라다 납작파우치 리폼글을 보고 꽂혀서 바로 찾아봤다. 주로 다른 잇님들이 리폼하는 파우치는 주로 1NH545 모델로 스트랩 고리가 달려있는 모델이다. (한쪽에 스트랩이 달려있어 한쪽에만 디링을 달아도 되기때문에 그런것 같음) 그런데 불과 얼마전까지만해도 20만원대였던 그 파우치가....... 지금은 10만원 이상 올라서 37~8만원은 줘야 살 수 있다는 사실....... 더군다나 지금은 구하기도 어렵다고 한다. ​ ​ ​ 하지만 얼마전에 바깥양반에게 다른 가방을 생일 선물로 받은터라 또 큰 지출을 할 수 가없어서 비슷한 모델을 검색해보니 1NB400 스트랩 없는 제품은 그나마 저렴했다. 25만원정도? 그래도 나는 의지의 한국인!!!! 중고로 거의 새상품 컨디션 제품을 15만원에 겟했다!!.. 2021. 9. 11.
728x90