전체 글(152)
-
[EC2] AWS 프리티어에서 메모리 스왑 사용
본 포스팅은 ec2에서 hdd의 용량을 이용해 메모리로 전환시켜주는 메모리 스왑에 대해 다룹니다. ec2에서 프리티어등을 사용하게되면, 기본 제공 메모리가 1GB이기 때문에 메모리가 굉장히 부족합니다. 따라서 가용한 자원내에서 메모리를 늘려줄 수 있는 메모리 스왑을 사용할 수 있습니다. ec2 프리티어는 기본 메모리 제공이 1GB이기 때문에 아래의 명령어는 그 용량에 맞춰 2GB를 스왑하는 것을 기준으로 작성되었습니다. 아래의 명령어를 실행하면 메모리 스왑을 할 수 있습니다. sudo dd if=/dev/zero of=/swapfile bs=128M count=16 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile 부팅시 메모리 스..
2024.04.06 -
[EC2] contextLoads() FAILED 에러
본 포스팅은 spring boot 서버를 ec2에 배포하려고 할 때 발생하는 "contextLoads() FAILED" 에러에 대해 다룹니다. 문제상황 처음으로 ec2에 spring boot 서버를 배포하려고했을 때, "contextLoads() FAILED"와 같은 에러가 발생함. 해결방법 contextLoads 메소드는 test 코드에 있다는 것을 발견하고, 사용하지 않는 테스트 코드를 없애니 정상적으로 빌드가됨.
2024.03.11 -
[Spring JPA] 영속성 컨텍스트의 기능
본 포스팅은 영속성 컨텍스트의 4가지 기능을 다룹니다. 영속성 컨텍스트란? 영속성 컨텍스트는 Spring JPA의 Entity 객체를 관리하기 위해 만들어진 공간 영속성 컨텍스트에 저장하기 위해 Entity Manager 객체가 persist 메소드를 호출해야함. Entity Manager는 @PersistenceContext를 통해 의존성 주입을 받을 수 있음 영속성 컨텍스트에 저장한 후, commit메소드를 호출해야 db에 반영이됨. 트랜잭션이란? 트랜잭션은 DB 데이터들의 무결성과 정합성을 유지하기 위한 하나의 논리적 개념 여러 개의 쿼리들이 하나의 트랜잭션에 포함될 수 있고, 여러 개의 쿼리들을 모아 한 번에 db에 반영함. 모든 쿼리들이 성공적으로 수행되면 영구적으로 db에 변경을 반영하지만, ..
2024.03.07 -
[QueryDSL] 최신! 환경설정
본 포스팅은 QueryDSL-JPA의 환경설정을 다룹니다. 문제 상황 김영한님 QueryDSL 강의 듣고 있는데, 강의에서 제공해준 메뉴얼대로 아래와 같이 gradle을 작성했는데 빌드가 제대로 안됨. plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral..
2024.03.06 -
[Spring Security] 최신! AccessDeniedHandler, AuthenticationEntryPoint 사용하기
본 포스팅은 Spring Security에서 AccessDeniedHandler, AuthenticationEntryPoint 구현체를 이용하는 것을 다룹니다. 문제 상황 로그인하지 않은 사용자(HTTP STATUS CODE 401), 접근 권한이 없는 사용자(HTTP STATUS 403)가 있을 때, 해당 정보를 ResponseBody에 넘겨주고 싶음. 다른 에러들은 에러가 발생했을 때, CustomException을 정의해서 처리를 했었는데, 위의 401, 403 에러들은 Custom Exception으로 잡으려고해도 잡히지 않았음. 그것은 아래와 같이 controller보다 Security Filter Chain이 먼저 동작하기 때문임. 시도한 방법 Global Exception에서 잡으려고 시도함..
2024.03.06 -
스웨거로 작업한 API를 html 문서로 저장하기
본 포스팅은 스웨거로 작업한 API를 html 문서로 저장하는법을 다룹니다. 1단계 http://localhost:8080/swagger-ui/index.html#/ 로 접속해 제목 아래에 있는 링크로 접속한다. 2단계 출력되는 json을 저장한다. 3단계 https://editor.swagger.io/로 접속해 방금 만든 json 파일을 import한다. 4단계 html로 export한다. 에러발생 간혹가다 export가 안되는 경우가 있는데, 그때는 requestdto, responsedto쪽 Schema 어노테이션을 수정하면 된다!
2024.03.06