일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA공부
- Flutter
- 스프링 공부
- nestjs
- 기술공부
- K8S
- JPA스터디
- JPA 공부
- 스프링공부
- 플러터 개발
- DDD
- 스프링부트
- Kafka
- JPA
- 코테준비
- 자바공부
- 스프링
- nestjs공부
- 스프링부트공부
- 기술면접공부
- nestjs스터디
- 카프카
- JPA예제
- querydsl
- 프로그래머스
- 코테공부
- 자료구조공부
- 플러터 공부
- Axon framework
- 알고리즘공부
- Today
- Total
목록Language (93)
DevBoi
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.추상화 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업 구체적인 사물들의 공통적인 특성을 파악해서, 하..
HttpSessiondms Java 인터페이스 이며, 이를 사용하여, 세션을 제어할수 있다. Session은 쿠키의 트래픽 이슈와 cookie변경으로 인한 보안 issue를 해결하기 위해 등장했다. 세션의 개념 1.session은 사전적 의미로 서버와 클라이언트 간의 반 영구적으로 상호작용하는 정보 교환이다. 2.session은 server로 요청 하는 client를 구별하기 위해 server에 저장되는 정보입니다. - session은 client에 저장되는 쿠키와 다르게 server에 저장되므로 관리가 용이하고 효율적이며 보안에 강합니다. 3. server는 client request에 session-id를 생성하여 server와 client 브라우저 메모리에 쿠키로 저장한다. -위 쿠키는 일반적인 쿠..
제네릭은 이전에 공부 했듯이, 특별히 어떤 클래스를 사용할떄, 타입에 대한 제약을 걸어두지 않는 것이다. 그런데, 이렇게 제약조건 없이 사용하게 된다면, String 변수에 Integer가 들어가도런타임시에 발견할수 없다. 그래서 제네릭에서는 제약조건을 와일드 카드라는 개념으로 걸어둘수 있다. 간단한 예를 보면서 이해해보자 FuncUtil 이라는 클래스는 utilList라는 녀석을 넣을때, Test1의 하위로 제약을 둔다면, 실제 메인에서 Test2라는 클래스로 걸때 오류가 발생하면서 런타임시에 발견할수 있게 된다. 만약에 Test2가 Test1을 상속 받게된다면, 해당 오류는 사라지게 된다. 자 , 그러면 와일드 카드에 대한 정확한 이해를 해보도록 하자 제네릭에서 만약에 특정 제약조건을 무조건 받지 않..