목록분류 전체보기 (184)
이숭간 공부기록
entity나 Dto객체에 값을 넣어줄때 롬복의 빌더 애노테이션(@Builder)을 종종 사용하곤 하는데 완벽히 이해를 하지 못한것같아 정리해보았다! 빌더패턴이란? 디자인패턴중 하나로, 생성과 표현의 분리(?)란다. 쉽게 말해 생성자에서 인자가 많을때 고려해볼수있는것이 빌더패턴이다. 빌더패턴 이전에 먼저 "점층적 생성자패턴"에 대해 알아보자 0. 점증적 생성자패턴 클래스를 설계하다보면, 필수로 받야할 인자들이 있고 선택적으로 받야할 인자들이 있다. 이때 필수적으로 값이 있어야할 멤버변수를 위해 생성자에 매개변수를 넣는다. 또한 선택적 인자를 받기위해 추가적인 생성자를 만든다. 이러한 상황을 Effectivce Java 2/E에서 점층적 생성자 패턴이라고 한다. 이런 설계에서의 단점이 있는데 인자들이 많아..
프록시 패턴이란? 디자인패턴중 하나로, 다른 무언가와 이어지는 인터페이스 역할을 하는 클래스를 의미한다. 먼저 프록시라는 용어를 이해하고 넘어가보자. 0. 프록시 라는 용어의 의미 소프트웨어 기술에서 종종 등장하는 '프록시'의 용어를 정리하고 넘어가자. 프록시는 어디서 많이 주워들었다. 리버스프록시,프록시서버, lazy전략에서 사용되는 프록시객체, 프록시패턴 등등 프록시란 '대리'라는 의미로 프록시에게 어떤 일을 대신 시키는것이다. 예를 들어 보안분야에서, 보안상의 이유로 서버를 외부에 노출시키지 않기 위해 서버와 클라이언트단 중간에서 접점을 담당하는 서버를 보고 프록시서버라고 부른다. 프록시서버가 궁금하다면 다음글을 읽어보자. (https://brownbears.tistory.com/191) 1. 프록..
Object클래스의 메소드에 대해 알아보자! Object클래스? java.lang패키지에 속하는 클래스로 자바 클래스의 최상위 클래스에 해당한다. 우리가 클래스를 선언할때 명시적으로 extends를 사용해서 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object클래스를 상속한다. 즉 모든 자바의 클래스는 Object클래스의 자식이거나 자손인것이다. equals() _ 객체비교 함수 매개변수 타입은 Object이다. 모든객체가 매개값이 될수 있음을 의미한다. 모든 객체는 Obejct타입으로 자동타입변환 될 수 있기때문 String객체의 equals()메소드가 객체의 번지수가 아닌 논리적인 데이터값을 비교할 수 있었던 이유는 String클래스가 Object의 equals()메소드를 오버라이딩..
https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 문제유형 : 그래프,,라는데 나는 좀 다르게 풀었다. 문제풀이 : 나를 이긴사람을 부모노드로 나에게 진 사람을 자식노드로 구분하여 저장 나의 부모노드의수 + 자식노드의 수 = n-1이면 나의 위치는 정해진것이 되므로 answer를 1 증가시킨다. 이때 나의 앞에 있는 애들 ( 즉 나를 이긴애들) 의 자식에게 내 자식을 추가한다. 나의 뒤에있는 애들 ( 즉 나에게 진 애들) 의 부모에게 나의 부모를 추가한다. 정답코드 : def solution(n, results): a..
1. 멀티스레드에 대해 알고있는가? ( 왜 멀티스레드에서 스레드마다 '스택'만 따로 할당받는지, 공유되는 영역(힙,코드, 데이터)은 어디인지 ) 2. 스프링의 싱글톤에 대해 알고있는가? ( Bean에 대해 알고있는지, Bean의 Default 스코프에 대해 알고있는지 ) 3. JVM의 메모리 영역에 대해 알고있는가? ( Method Area, Heap, Stack, PCRegister, Native Method Stack) JVM의 Method Area : static키워드 , 클래스에 대한 메타데이터 정보 위와 같은 내용을 알고 있다면 글을 이해하는데 더 도움이 될것이라고 생각한다. 우리가 보통 스레드간 공유를 생각하면 가장먼저 동기화를 떠올린다. 운영체제에서 주구장창 배운것이 동기화,, lock 이기..
인터페이스란? 기본설계도 추상메서드와 상수만 가지며, 데이터를 저장하지않는 개발코드와 객체의 통신접점을 의미한다. interface키워드로 선언되며 인터페이스는 다중상속이 가능하다 인터페이스의 구현 인터페이스의 모든 추상메소드를 구현한 구현클래스를 작성한다. implements키워드를 사용해서 구현한다. 만약 구현하는 인터페이스가 어떤 상위 인터페이스를 상속하고 있는경우 구현클래스는 상위인터페이스의 모든 추상메소드까지 전부 구현해야한다. //추상체 public interface Login { void login(); } //구현체 public class KakaoLogin implements Login{ @Override public void login(){ System.out.println("카카오로 ..