Programming

Programming/Java

[JAVA] 메모리 누수 확인 도구

GC 로깅 + Eclipse MATGC 로그로 메모리 누수 의심 구간을 식별.힙 덤프를 Eclipse MAT로 분석하여 누수 원인을 확인. JVisualVM초기 분석 단계에서 간단하고 빠르게 메모리 사용량 및 누수 여부 확인. APM 도구프로덕션 환경에서 실시간 메모리 이상 패턴 모니터링. SpotBugs 또는 SonarQube코드에서 잠재적인 메모리 누수 원인을 사전에 방지. 아직 메모리누수를 어떻게 처리하는지, 왜 발생하는지 등에 대해서도 알지 못한다. 그래서 발생원인부터 해결방법까지 알아보려고 한다.

Programming/Spring | Spring-Boot

[Spring Boot] chat web application with websocket - 1

웹에서 채팅할 수 있는 애플리케이션을 개발해보려고 한다. 채팅을 구현 방법으로 Polling, Long Polling, Streaming 등의 방식들이 있다. 하지만, 요즘 많이 사용하는 기술을 한 번 적용해보겠다. 웹 통신으로 단방향인 HTTP 프로토콜을 사용한다. 요청이 발생하면 응답을 해주는 방식이다. 그럼 websocket은 어떤 프로토콜일까? WebSocket HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 TCP 기반의 프로토콜이다. 누군가 요청하지 않아도 서로 간에 메시지를 주고 받을 수 있게 된다. 실시간성을 보장해야 하고, 변경 사항의 빈도가 잦거나 짧은 대기시간, 고주파수, 대용량의 조합인 경우 적용하는 게 적합하다. 장점 일반 socket과 달리 HTTP 80 Port..

Programming/Java

[JPA] 영속성 컨텍스트(Persistence Context)

영속성 컨텍스트 JPA가 관리하는 엔티티 객체의 집합으로 엔티티를 영구 저장하는 환경이라고 보면 된다. 애플리케이션을 실행하면 엔티티 매니저 팩토리가 생성되고 데이터베이스 작업을 위해 엔티티 매니저를 생성하면 엔티티 매니저에 안에 하나의 영속성 컨텍스트가 생성된다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있다. 엔티티 매니저를 통해 엔티티 객체를 영속성 컨텍스트에 넣으면 JPA는 엔티티 객체의 매핑 정보를 가지고 데이터베이스에 반영한다. 엔티티 생명 주기 비영속성(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태이다. 다르게 말하면 객체를 생성만 한 상태를 뜻한다. 그래서 영속성 컨텍스트에는 존재하지 않은 상태다. // 객체를 생성한 상태(비영속) Member memb..

Programming

결제 API

API Document JitPack | Publish JVM and Android libraries JitPack makes it easy to release your Java or Android library. Publish straight from GitHub or Bitbucket. jitpack.io PG사 코드 PG사 코드 JavaScript SDK PG구분코드를 확인할 수 있습니다. developers.portone.io https://github.com/iamport/iamport-rest-client-java GitHub - iamport/iamport-rest-client-java: JAVA사용자를 위한 아임포트 REST API 연동 모듈입니다 JAVA사용자를 위한 아임포트 REST ..

Programming/Java

[JPA] 값 타입(Value Type)

값 타입은 JPA 강의를 보면서 엔티티를 정의할 때 Value Type이 명시 되어 있어서 자세히 알아보고자 정리하게 되었다. Value Type 값 타입은 자바에서 다루는 원시 타입(Primitive Type)으로 int, Integer, String 등을 의미한다. 값 타입은 3가지로 나눌 수 있다. 기본값 타입(basic value type) String, int, Integer 등 자바에서 제공하는 원시 타입 및 래퍼 클래스 타입 임베디드 타입(embedded type) JPA에서 사용자가 직접 정의한 값 타입 컬렉션 값 타입(collection value type) 하나 이상의 값 타입을 저장할 때 사용 기본값 타입 @Entity public class Member { @Id // ... (생략..

Programming/Spring | Spring-Boot

[Spring Boot] java.lang.IllegalArgumentException: No enum constant [ENUM Package name]

원인 사용자가 정의한 enum에 존재하지 않는 값이 DB에 존재하면 발생하는 오류이다. 예를 들어 아래와 같이 MASTER로 작성했는데, 데이터베이스에는 'master' 또는 'MESTER'이라고 작성되어 있거나 값이 없는 경우(NULL)에 오류가 발생한다. 해결 방법 작성된 열거형 클래스 enum 파일과 데이터베이스에 기입된 내용이 같은지 확인한다. 대소문자를 구분하기 때문에 자세히 봐야 한다.

seandoesdev
'Programming' 카테고리의 글 목록