일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기술공부
- 스프링부트
- 알고리즘공부
- nestjs스터디
- Flutter
- JPA 공부
- nestjs
- nestjs공부
- 스프링 공부
- 코테준비
- 카프카
- Axon framework
- JPA스터디
- Kafka
- DDD
- 코테공부
- 플러터 공부
- JPA
- querydsl
- 프로그래머스
- 플러터 개발
- 스프링
- JPA공부
- 스프링부트공부
- 자료구조공부
- K8S
- 기술면접공부
- JPA예제
- 스프링공부
- 자바공부
- Today
- Total
목록기술공부 (7)
DevBoi
1. 서버가 여러대일때 세션 관리하는방법 -물론 실습을 바탕으로 진행이 되어야 하지만, 간단하게 지식을 익혀보자 세션이란, 사용자의 정보 혹은 로그인 정보를 서버 쪽에서 캐싱해서 가지고 있는 것이다. redis 와같이 세션 관련, 서버가 있는 경우도 있고 was내에서 별도 세션을 저장하는 경우도 있다. 만약에 a라는 사용자가, 로그인을 하고 이정보를 세션에 저장했다고 가정한다. 이 경우에, 서버의 트래픽이 몰릴것을 감안하여, 스케일 아웃을 했다고 한다면, 각 서버에서 가지고 있는 세션의 정보는 각 was 별로 다르게 된다. 이럴 경우에는, 어떻게 해야 문제를 해결할수 있을까 1. sticky session 방식을 사용하면된다. 말그대로, 고정 세션이다. 사용자 usr1이 로그인을 하고 이 정보를 was1..
Spring framework에 대해설명 1. oop란? 데이터를 객체로 취급하여, 프로그램에 반영한다. 순차적으로 프로그램이 동작하는 것과 다르게 객체의 상호작용을 통해, 프로그램이 동작한다. 객체를 사용함으로써 코드 재사용을 증가시키고, 유지보수를 감소시켜준다. 2. 자바의 메모리 영역에 대해서 설명 - 메서드 영역 : static변수, 전역 변수, 코드에서 사용되는 클래스 정보들이 올라간다. 코드에서 사용되는 클래스들을 로더가 읽고, 클래스 별로 분류해서 저장한다. 처음에 로드 될때, 필요한 것들이 메모리에 저장된다. 이때 클래스 정보가 없거나, 전역 변수에대한 오류가있으면 기동시에, 오류가 난다. -스택 : 지역변수, 메서드 등이 할당되는 LIFO 방식의 메모리이다. -힙 : new 연산자를 통해..
1. Filter와 Interceptor filter 와 interceptor 의 실행시점은 다르다. - filter 는 web application 에서 동작을 하고 - interceptor는 spring 의 context에 등록을 한다. 이말은 즉, filter는 dispatcher servlet 이전에 실행이되고, interceptor는 dispatcher servlet 이후에, 실행이되는 시점을 가진다. Filter 에서 예외가 발생하면 Web Application 에서 처리를 해야한다. 선언 이나, Filter내에서 예외를 잡아, request.getRequestDispatcher 으로 핑퐁하듯이 예외를 처리한다. Interception 에서 예외 발생시에는, ExceptionHandler 나,..
데이터베이스에서 이상이란? 이상은 왜 발생하는가? 그 종류는? 데이터 베이스 이상현상이란, 3가지가 있다. - 갱신 이상 : 반복된 데이터 중 일부를 갱신할 시 데이터의 불일치가 발생 - 삽입 이상 : 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다 - 삭제 이상 : 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다 -갱신 이상 : 만약에 한가지의 데이터가 변경되었다면, 연관된 다른데이터들이 한꺼번에 같이 변경되지 않아 불일치가 발생한다. 이렇게 될경우, 바뀌게 되는 데이터에 따른 모든 데이터를 일일히 바꿔서 수정해줘야한다. -삽입 이상 : 내가 원하는 값만 테이블에 삽입하고 싶은데, 테이블에 필요하지 않은 필드들 때문에 원치 않는 필드의 값도 삽입해..
1. 자바 캡슐화 - 자바 캡슐화는 변수와 함수를 하나의 클래스로 묶고, 외부에서 쉽게 접근하지 못하도록 은닉하는것이 핵심이다. 객체의 직접적인 접근을 막고, 객체가 제공하는 필드, 메소드를 통해서만 접근이 가능하도록 하는것이다. (getter,setter) 장점으로는 객체내 정보손상, 오용을 방지하고, 데이터가 변경되어도 다른 객체에 영향을 주지 않기 떄문에 독립성이 좋다. 또한 처리된 결과 사용으로 이식성이 좋고, 객체를 모듈화 할수 있어, 하나의 모듈 처럼 사용가능하다. ex. private 변수, public getter,setter 2. map과 set의 차이 - set은 순서를 보장하지 않는다. 또한 key와 value의 중복을 허용하지 않는다. - map 또한 순서를 보장하지 않지만, key..
1. Hash Table 해쉬 테이블, 즉 해시 맵에서 개발자들이 사용하지만, 실제 내부 동작에 대해서는 잘 모르는 경우가 많다. 예를 들어서, hash 에 smith, 1234 가 들어있다고 가정하자 key는 smith 이고, 중간에 hash function 을 통해서, buckets에 들어간다. 이 해쉬 펑션은 value의 index를 알아내기 위한것이고, 해당 펑션 수행이후 값에 대한, index주소를 알아내서 값을 알아오게 된다. 잘 정리된 그림을 보면 바로 이해가 된다. 이 구조로 저장과, 삭제가 아주 빠르다. hash function 은 key를 array size로 나눈다. 그렇기 때문에 충돌 방식이 발생한다. 1,11,21 은 같은, 주소를 갖게 되는 것이다. 이러한 충돌 방식은 여러 구현..
1. 자바 컴파일 과정 개발자가 자바 소스코드를 작성하고, 자바 컴파일러가 자바소스파일을 컴파일한다. 컴파일을 하게 되면, class파일이 생성되어, 아직 JVM만 이해할수 있는 코드가 된다. 컴파일된 바이크 코드를 JVM의 ClassLoader에게 전달을한다. ClassLoader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여,JVM 메모리에 올린다. ClassLoader 세부 동작. 1. 로드 : 클래스 파일을 가져와서 JVM 메모리에 로드한다. 2. 검증 : 자바 언어 명세 및 JVM 명세에 명시된 대로 구성되어있는지 검사 3. 준비 : 클래스가 필요로하는 메모리를 할당한다. 4. 분석 : 클래스의 상수 풀 내 모든 심볼릭 레퍼런스를 다이렉트 레퍼런스로 변경한다. 5. 초기화 : 클래스 변..