일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA 공부
- JPA
- JPA스터디
- Kafka
- nestjs공부
- 코테준비
- nestjs
- nestjs스터디
- 코테공부
- JPA예제
- 알고리즘공부
- K8S
- Axon framework
- 기술공부
- 카프카
- 프로그래머스
- querydsl
- 기술면접공부
- 스프링 공부
- 스프링
- 스프링공부
- 자바공부
- JPA공부
- DDD
- 플러터 개발
- 자료구조공부
- 스프링부트
- Flutter
- 플러터 공부
- 스프링부트공부
- Today
- Total
목록분류 전체보기 (715)
DevBoi
Wrapper class 사용 이유 - 객체 또는 클래스가 제공하는 메서드 또는 생성자에 필요하다. 쉽게 말하자면, Collection을 들수 있다. 제네릭 클래스에서 사용이 가능하여, Collection에서 사용이 가능하다. - 클래스가 제공하는 상수, MIN_VALUE,MAX_VALUE등이 사용가능하다. - 숫자, 문자로의 형 변환 또는 진법 변환에 있어서, 사용가능하다 Integer.parseInt() 등이 예로 있다. 박싱 -> 기본형 객체를 Wrapper클래스로 바꿔주는걸 박싱 언박싱 -> 반대 자바 1.5부터는 오토 박싱,언박싱이 지원된다.
1. Primitive Type 예) byte, char, short, int, long, float, double, boolean. - 기본형 변수는 참조하지않고, 할당될때 메모리를 검사한다. 또한 실제값을 저장한다 - ==가능 -저장 공간 : 스택 - Null 불가 -범위 이상이면, 컴파일 에러가 발생 -null 사용하려면 Wrapper 클래스 사용 필요 2. Reference type - 참조형은 , Primitive 타입을 제외한 모든 타입을 얘기하며, 해당 값이 아닌, 주소값을 가르킵니다. - Class/Interface/array//Enumeration - == 불가, equals 나 compareTo를 사용필요 -저장 공간 : 힙 -Null 일부 가능 -런타임 에러 발생
프레임 워크 - 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 결합 라이브러리 - 단순활용이 가능한 도구들의 집합 라이브러리와 프레임워크의 차이는 흐름에 대한 제어가 어디에 있는지에 대한 차이이다. 프레임워크 -> 전체적인 흐름을 자체적으로 가지고있고, 프로그래머가 필요한 코드를 작성한다. 라이브러리 -> 개발자가 흐름에 대한 제어를 하며, 필요한 상황에 가져다 쓰는 것이다.
클래스 변수 - 클래스 영역에 선언된다, 클래스가 클래스 로더에 의해 클래스가 메모리에 올라갈때 생성이 된다 인스턴스 변수 -클래스 영역에 선언되고, 인스턴스가 생성되는 시점에 생성이 된다. 지역 변수 - 클래스 이외의 영역에 선언이 되고, 변수 선언문이 실행되었을때 생성이 된다.
싱글턴 패턴을 따르는 클래스는 생성자가 여러차례 호출되더라도, 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초생성자가 생성한 객체를 리턴한다. 장점 -메모리 측면으로 효율적 -생성된 인스턴스를 활용하여 속도 측면에서 좋다 -전역으로 사용되기 때문에 데이터 공유가 쉽다. 단점 - 동시성 문제가 발생할 수 있다. - 테스트가 어렵다, 자원을 공유하고있기 때문에, 격리된 환경에서 수행하면, 매번 인스턴스의 상태를 초기화 시켜주어야 한다. - 구체 클래스에 의존적이 된다. - 자식 클래스를 만들수 없다. - 내부 상태를 변경하기 어렵다 - 유연성이 많이 떨어진다. 멀티쓰레드에서는 인스턴스가 여러개 생성되거나, 상태유지가 잘안되어 값에 대한 유지를 잘 못할 수도있다. 멀티쓰레드 환경에서 싱..
1. 추상클래스 - 한개의 추상메서드와 일반메소드로 구현가능 - 공통된 기능을 상속 받는 클래스에서 사용하고싶을때, 여러클래스에서 상속 받아서 사용할때 사용하면 좋다. - 미완성된 설계도이고, 상속 받는 하위타입에서 완성을 유도한다. -> 상속 관계를 쭉 타고 올라가서, 같은 조상클래스를 상속하면, 기능까지 완벽히 같은 기능이 필요한 경우 사용하면 좋다. 2. 인터페이스 - 추상메서드로만 구현가능 - 공통의 기능을 정의할때 사용하면 좋다. 여러클래스에서 공통된 기능을 제공할때, 해당 인터페이스를 사용하여, 기능 구현을 강제하면, 각 구현체들의 목적성이 뚜렷해진다. - 설계도이고, 구현체에서 구현을 강제한다. -인터페이스 장점 1. 협업 : return Type과, 메서드명을 미리 선언하여, 병행 개발을 ..
Just in Time 컴파일러라고도 불리는 JIT 컴파일러는, 바이트 코드를 컴퓨터 프로세서로 직접 보낼수있는 명령어로 바꾸는 프로그램이다. 자바는 바이트코드를 한번 컴파일하는 과정과 바이트코드를 인터프리터하는 방식 2가지를 진행한다. 인터프리터 방식은 소스코드를 런타임시에 한줄한줄 읽어 들여야 하는방식 때문에 컴파일 방식보다 느리다. 1) 컴파일 방식 : 소스코드를 한꺼번에 컴퓨터가 읽을수있는 기계어로 변환 2) 인터프리터 방식 : 소스코드를 빌드시에는 아무것도 하지 않다가, 런타임시에 한줄한줄 읽어가며 반환 JIT는, 한번 읽어서 기계어로 변경한 소스코드는 번역하지 않는다. 정확히는 반복되는 코드를 모두 컴파일러로 컴파일 시킨다. JIT는 실행엔진 파트에 속해서, 중복되는 소스가 있다면, 인터프리팅..
Java의 장점 - 플랫폼에 독립적임 - os에 의존하지 않고, 별도의 멀티 쓰레드 프로그래밍이 가능함 - 객체지향언어로, 캡슐화,추상화, 다형성,클래스 계층 구조가 존재함 단점 - 예외처리를 직접 해주어야함, 그렇지 않으면 컴파일 자체가 실행되지 않는다. - 컴파일 단계에서 속도가 느리다.(JVM을 통해 기계어로 번역되는 과정을 거침, 자바 바이트 코드(자바 컴파일러) -> 기계어(실행엔진))
OOP란 객체의 관점에서 프로그래밍하는 것을 의미한다. 프로그래밍에서 필요한 데이터를 추상화시켜, 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 중 하나이다. 장점 -코드 재사용이 용이 -유지보수가 쉽다. -대형 프로젝트에 적합하다. 단점 -처리 속도가 상대적으로 느리다. -객체가 많으면 용량이 커질 수 있다. -설계시 많은 노력과 시간이 필요하다. 클래스 - 상태,행위,속성,변수 등을 정의한 것으로, 인스턴스가 생성의 설계가 되는 정보이다. 인스턴스 - 클래스를 바탕으로 생성되어 실제 메모리에 할당되어 사용되는 데이터이다. 특징 1.추상화 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업 구체적인 사물들의 공통적인 특성을 파악해서, 하..
더티 체킹때문에, 실시간 성은 굉장히 좋은 효과를 가지지만 bulk 성 연산에는 약한것같다. 그래서 기능은 있다고 한다. 쿼리 한번으로 여러 테이블 로우를 변경한다. 벌크 연산 주의 벌크 연산은 영속성 컨텍스트를 무시하고 디비에 직접 쿼리한다. - 벌크 연산을 먼저 실행한다. - 벌크 연산 수행 후 연속성 컨텍스트 초기화 한다. 해당 주의사항을 했던 이유는 많은 량의 데이터가 변경되기 때문에, 영속성 컨턱스트를 통해 값을 받게 되면 해당 애플리케이션과 실제 디비의 갑이 다르게 될수 있기 때문이다. Spring data jpa 에서는 Modifying하는 어노테이션이 있는데, 이건 영속성 컨텍스트를 한번 clear 시켜주는 것이다.