분류 전체보기
-
메시징 시스템과 카프카 개념 잡기JAVA 2021. 4. 13. 17:37
0.들어가기전에MSA에서는 데이터 송수신 방법으로 메시징 시스템을 사용한다. 회사 프로젝트 내에서 사업장과 중앙서버가 통신할 때 MQ, 토픽 등의 용어가 나와 이에 대해 공부 하다가 메시징시스템을 공부하게 되었다. 요즘 기업들 자격요건란에 Kafka란 단어가 많이 나와서 적어도 뭔지는 알아야 겠다는 생각에.. 카프카가 이런 것이다. 정도의 개념을 잡는 것이 목적이기에 너무 깊게 들어가진 않았다. (더 깊게는 앞으로 공부할 예정,,)1.메시징 시스템1-1. 메시징 시스템의 개념 메시징 시스템의 종류에는 Kafka, RabbitMQ, Active MQ, AWS SQS, JAVA JMS 등이 있다MSA에서는 시스템간의 호출이 많기 때문에 결합도를 낮추기 위해서 메시징 시스템을 사용한다 어플리케이션 간에 메시지..
-
ConcurrentHashMap, CopyOnWriteArrayList에 대하여JAVA 2021. 4. 12. 16:28
0.들어가기전 ArrayList와 HashMap을 Thread safe하게 사용 하는 방법은 무엇인가?에 대한 대답으로 아래의 내용을 공부 해 보았다 1.Thread Safe 란? 멀티 쓰레드 환경에서 개발자가 의도한대로 코드가 동작하는 것 어떤 함수나 변수, 객체가 여러 스레드에서 동시에 접근이 이루어져도 수행 결과가 의도 한대로 나오는 것. 2.HashMap을 Thread Safe 하게 사용하는 방법 ConcurrentHashMap 스레드가 안전한 연산을 할 수 있게 해주는 해시맵 ConcurrentHashMap은 multi-threaded 환경에서 안정적으로 동작하고 HashTable과 synchronized map 보다 더 나은 성능을 가지고 있다. 그 이유는, ConcurrentHashMap은 ..
-
JVM에 대하여JAVA 2021. 4. 9. 09:27
1. 메모리프로그램 실행하기 위한 데이터 및 명령어 저장 공간.2. JVM이란?Java Virtual Machinejava프로그램은 JVM으로 실행 가능하다 → 자바는 JVM 위에서 실행 되기 때문에 OS에 독립적이다. 자바 소스 코드 컴파일 후 생성된 파일이 해석(interpret)과 Link없이 바로 JVM에 적재 되고, OS로부터 메모리를 할당받아 GC(Garbage Collection)를 통해 스스로 메모리 관리를 한다는 특징이 있습니다.메모리 할당 등 메모리 관리 기능bytecode를 interpreter 형태로 OS에 맞추어 interpret, execute한다JAVA와 OS 사이의 중개자 역할. 3. JVM 구조 그림 JVM은 크게 가비지컬렉터, Execution Engine, Class L..
-
JVM 메모리 구조JAVA 2021. 4. 8. 11:26
0.들어가기 전 쓰레드 세이프란? 멀티 쓰레드에 의한 동시 호출에서 안정성이 보장되는 코드를 말한다. 즉, 멀티 쓰레드 환경에서 코드가 개발자가 의도한대로 동작하는 것을 말한다. 이 쓰레드 세이프에 대해 공부하다가 JVM의 메모리 구조를 공부하게 되었다. 메모리란? 프로그램을 구동하기 위해서 운영체제(OS)가 데이터를 저장할 공간을 할당함. 메모리 공간은 크게 Static, Stack, Heap 영역으로 구분 됨. 1.JVM과 메모리 할당 출처) https://velog.io/@agugu95/자바와-JVM-그리고-메모리-구조 1-1. JVM 메모리 공간 Runtime Data Areas라고도 불린다. 위 그림과 같이 JVM의 메모리 공간은 Method Area, Heap, Stack, PC Registe..
-
JPA 영속성 컨텍스트 내부동작카테고리 없음 2020. 3. 19. 21:55
1.엔티티 매니저 팩토리와 엔티티매니저 웹 어플리케이션을 개발 한다고 하면 고객의 요청이 올때마다 entityManager를 생성하고 이 엔티티매니저는 내부적으로 db 커넥션을 맺는다 2.그러면 영속성 컨텍스트란 뭔가? 엔티티를 영구 저장하는 환경이라는 뜻. 눈에 보이지 않는 어떤 논리적인 개념. EntityManager.persist(entity); => 영속성 컨텍스트를 통해 entity를 영속화한다. 엔티티매니저를 통해서 영속성 컨텍스트에 접근한다. 3.엔티티의 생명주기 3-1.비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 3-2.영속(managed) 영속성 컨텍스트에 관리되는 상태 3-3.준영속(detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 3-..
-
Spring Boot - OAuth2.0 password 방식으로 간단한 인증서버 구현하기Spring boot 2020. 1. 9. 23:10
1.개요 1-1.프로젝트 환경 지난 시간에는 OAuth2.0의 개념을 알아 봤다. 이번에는 Spring Boot로 간단하게 OAuth 2.0 인증서버를 구현 해 볼 것이다. authorization grant type은 password grant 방식으로 할 것이다. - 인텔리제이 커뮤니티 - 스프링부트 2.1.4 - gradle 5.2.1 - postman을 통한 테스트2.소스 2-0 application.yml. server: port: 8081 spring: h2: console: enabled: true settings: web-allow-others: true jpa: database-platform: org.hibernate.dialect.H2Dialect properties.hibernate..
-
JWTSpring boot 2019. 12. 26. 00:21
*JWT - 토큰 기반 인증 방식 * JWT는 Json Web Token의 약자로 인증에 필요한 정보들을 암호화시킨 토큰을 의미한다. 사용자는 Access Token(JWT 토큰)을 HTTP 헤더에 실어 서버로 보내게 된다 JWT는 .으로 나뉘어져 Header, Payload, Verify Signature 구성되어 있다. Header - 헤더는 HMAC SHA26 이나 RSA 와 같은 정보를 암호화할 알고리즘 방식(alg)과 토큰의 타입(type) 등이 들어간다 { "alg": "HS256", "typ": "JWT" } Payload - Payload는 claims을 포함한다. claim - 유저와 같은 entity, 추가적인 데이터 claims에는 세가지 타입이 있다 1.Registered claim..