일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- 자바공부
- Flutter
- Kafka
- 코테준비
- JPA 공부
- Axon framework
- 자료구조공부
- querydsl
- JPA스터디
- 알고리즘공부
- 플러터 공부
- 카프카
- 코테공부
- 스프링
- 플러터 개발
- 스프링부트공부
- DDD
- 스프링 공부
- 기술면접공부
- 스프링공부
- JPA예제
- 기술공부
- K8S
- nestjs
- nestjs공부
- JPA
- JPA공부
- nestjs스터디
- 스프링부트
- Today
- Total
목록Language (93)
DevBoi
장점 1. 이름을 가질 수 있다. 2. 같은 파라미터를 가지는 생성자를 여러개 만들수 있다. 3.호출 할떄마다 인스턴스를 새로 생성하지 않아도된다. (미리 만들어놓은 객체를 반환할 수 있다.) 4. 리턴타입의 하위 타입 객체를 반환할 수 있다. 5.입력 매게 변수에 따라 매번 다른 타입의 클래스를 반환할 수 있다. 단점 -상속이 불가 -일반 메서드와 차이가 없기 때문에 찾는데 어려움이 있다 (명명 규칙 of,From, valueof 를 관례상 사용하긴 함)
리플렉션 class객체를 가져온다.생성자를 가져온다.메소드를 가져온다필드를 가져온다. 장점 -프로그램에서 임의의 클래스에 접근 할 수 있다. 생성자,메서드,필드를 조작할 수 있다. 컴파일 당시 존재하지 않던 클래스도 이용할 수 있다. 단점 컴파일 타임 타입 검사를 이용할 수 없다 코드가 지저분 해지고 장황해준다. 성능이 떨어진다. 일반 메서드 호출보다, 리플렉션을 이용한 메서드 호출이 훨씬 느리다. 즉, 속도가 느리고 컴파일 때 잡을수없고, 지저분 해져서 잘 안쓴다 인터페이스는 다중구현이 가능하고, 개발시간 단축(여러명이서할때, 인터페이스를 주고 해당 각자 별도로 구현가능) 인터페이스는 구현을 강제화 하기 때문에, 구현체들의 통일성을 맞출수도있다. 클래스간 결합도를 낮춘다. 단순히 인터페이스만 갈아끼우면 끝
String은 new를 사용해서 새롭게 인스턴스를 만들고, 메모리에 올리기 때문에 다른 주소값을 참조하기에 == 연관시에 false가 리턴된다. 예를 들어서 String a. = "3" String b = "4" String c = new String("7") 이면 a == b 이지만 a !=c 이다. String 은 wrapper class이지만, 같은 내용에 대해서는 같은 주소를 바라보게 끔 한다 String constant pool에 등록되기 때문이고 다른 주소값을 보는 c와는 같지 않다는 것을 알 수 있다. hashcode는 해당 주소값을 hashFunction한 값을 출력한다. object에 있는 equals는 해시코드에 대한 비교를 하고 결과를 return한다. 만약에 사용자가 임의로 만든 o..
해시, 쉽게말하면 많은 것들이 있지만 Hash 기반으로 동작하는 hashMap에 대해서 동작방식을 정리한다. Object클래스 기준, hashCode메서드에 대한 설명이다. 해당 메서드는 오브젝트의 해시코드 값을 리턴하고, 두 오브젝트가 equals를 통해 같다고 판별되면 hashcode또한 동일해야한다. equals메서드를 통해 다르다고 판별되더라도, hashcode가 꼭 달라야하는 것은 아니지만 hashCode가 다르면, 해시 테이블을 사용할때 성능상 이점이 나온다. HashMap은 기본적으로 bucket배열을 16으로 설정한다. bucket이란, HashTable에 데이터를 담는 공간을 의미한다. 이 용량은 설정해 놓은 LOAD_FACTOR기준에 다다르면 자동으로 2배씩 증가한다. 용량을 작게 설정..
깊은 복사란 -데이터 자체를 통째로 복사한다. -복사된 두 객체는 완전히 독립적인 메모리를 차지한다. -value type의 객체들은 깊은 복사를 하게 된다. 얕은 복사란 최소한의 복사만 한다. 인스턴스가 메모리에 새로 생성되지 않는다. 값자체를 복사하는 것이 아니라 주소값을 복사하여 같은 메모리를 가리킨다. 얕은 복사 (주소값을 공유) 깊은 복사 (값을 공유하여, 신규 객체 생성) -cloneable인터페이스 구현, 복사 생성자, 복사 팩터리 등등 인스턴스를 new로 신규로 만들어서, 새로운 인스턴스를 탄생, 값을 복사하여 신규 인스턴스를 생성한다.
공통점 : 웹 통신 간 유지하려는 정보를 저장하기 위해 사용하는 것 Http프로토콜의 특징이자 약점을 보완하기 위해 사용된다. 1. Connectionless 프로토콜 (비 연결지향) 클라이언트가 서버에 요청을 했을때, 그 요청에 맞는 응답을 보낸후 연결을 끊는 처리 방식이다. 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리 방식이다. -Http 1.1 버전에서 연결을 유지하고, 재활용 하는 기능이 Default로 추가되었다. (keep-alive 값으로 변경가능) 2.Stateless 프로토콜 (상태정보 유지안함) 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식이다. 클라이언트와 첫번째 통신에서 데이터를 주고받아도, 두번째 통신에서 이전 데이터를 유지하지 않는다. 3. 실제로 데이터 유지가 필요..
롬복은 어노테이션으로 편하게 getter,setter,생성자 등등을 사용할 수 있는 것이다. 근데, 사용시에 주의해야하는 사항이 있다. AllArgsConstructor, RequiredArgsConstructor 사용금지 생성자 필드에 대한 자동 생성 어노테이션이다. 해당 필드에 대한 값의 순서만 바꾸면 ,생성자에대한 값도 바뀌게 되는데, 이는 오류 발생이 높다. 아무 생각없이 순서만 바꿔도 로직에서 동작을 안하거나,잘못된 값들이 저장 되는 위험이 있다. AllArgs -> 모든 필드를 생성자의 인수로 만들어주는 어노테이션 Required -> 초기화 되지않은 final, @nonnull이 붙은 필드에 대해 생성자를 생성해준다. @EqualsAndHashCode 사용자제 EqualsAndhashCode..
팩터리 메서드 : 객체의 클래스 생성을 담당하는 메서드 생성자를 통해서 객체를 생성하지 않고, 생성 메서드를 통해서 객체를 생성하는 것을 정적 팩터리 메서드라고 한다. 그러면 생성자를 대신해서 정적 팩터리 메서드를 사용하면 뭐가좋을까 1. 이름을 가질 수 있다. 2.객체 생성을 캡슐화 가능하다 3. 하위클래스 타입으로 반환이 가능하다. 4.호출할때마다 신규 객체를 생성할 필요가 없다(싱글톤 유지시에)
jar : Java archive Java 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일 Class, 라이브러리 파일을 포함함 JRE Java Runtime Environment만 있어도 실행 가능함 War servlet/ Jsp 컨테이너에 배치할 수있는 웹 애플리케이션 압축파일 포맷 웹 관련 자원을 포함한다. 사전 정의된 구조를 사용한다. 별도의 웹서버 필요 Jar파일의 일종으로 웹 애플리케이션 전체를 패키징하기 위한 Jar파일이다. 정리 해보자 war는 웹 애플리케이션 배포에 특화가 되어있고,정해진 구성을 지켜야한다. 또한 tomcat과 같은 서버 위에서 동작하기 위해 war배포가 있고, 어떻게 설정할지는 web.xml을 참고한다. war는 jar의 모든 파일+ 서블릿 컨테이너 같은 웹..
인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기때문에 서로 다른값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우, static을 붙인다. static 이 붙은 멤버변수는 클래스가 메모리에 올라갈때, 이미 자동적으로 생성이 된다. (인스턴스 생성 시점이 아님) static 이 붙은 메서드에서는 인스턴스 변수를 사용할 수 없다. static이 메서드는 인스턴스 생성없이 호출이 가능한 반면, 인스턴스 변수는 인스턴스를 생성해야만 존재하기 때문에 static이 붙은 메서드를 호출할때 인스턴스가 생성되어있을수도, 그렇지 않을수도 있어서 static이 붙은 메서드에서 인스턴스 변수의 사용을 허용하지 않는다. 반대로, 인스턴스 변수나 인스턴스 메서드에서는 static 붙..