전체 글

흔한 컴공 출신 개발자입니다. 제가 경험하고 공부하고 아는 것을 적어둡니다.
· JAVA/spring
JPA란? Java Persistence API의 약자다. 자바에서 관계형 데이터베이스를 사용하는 데 필요한 기능을 제공하는 ORM기술이다. Spring Data JPA란? 위에서 언급한 JPA를 쉽게 사용할 수 있도록 스프링에서 제공하는 프레임워크다. 쿼리 생성, 페이징, 정렬, 캐싱 등의 기능을 제공해준다. 위에서 JPA가 ORM기술이라고 했는데 Spring Data JPA는 다양한 데이터베이스와의 호환을 도와준다. 공식 문서에서는 아래 예제가 먼저 우리를 반겨주고 있다. public interface CrudRepository extends Repository { S save(S entity); (1) Optional findById(ID primaryKey); (2) Iterable findAll..
· AWS
0. 이 글을 쓰는 이유 aws의 인스턴스를 시작하기 위해 ec2를 고르고 시작하는데 이 ec2가 어떤 건지 공식 도큐먼트에는 뭐라고 되어있나 정리하기 위함 1. EC2? Amazon Elastic Compute Cloud의 약자이다.(c가 2개라 EC2이다.) 빠르게 작업 환경을 구성할 수 있게 도와주는 시스템이다. 정말 하나 하나 다 직접 해줘야 할 부분들을 기능으로 제공하여 쉽게 제어할 수 있게 만들었다. 2. EC2의 기능 중 중요하다고 생각되는 부분 인스턴스 생성 : virtual compute 환경을 제공한다. AMI : Amazon Machine Image로 현재 인스턴스의 상태를 스냅숏 찍듯 만들어서 저장하고 공유할 수 있다. 인스턴스의 스펙에 대한 조절 : AWS는 요금제로 사용을 하기..
· JAVA/spring
0. 이 글을 쓰는 이유 통신 과정에서 method에 대한 정보를 가져온 후 특정 어노테이션이 붙은 경우에 대해 필터링을 하는 방법을 정리하기 위함 1. 가장 필요한 건 HandlerMethod Spring 공식 문서에 보면 HandlerMethod클래스에 이런 말이 적혀있다. Provides convenient access to method parameters, the method return value, method annotations, etc. 메서드의 어노테이션이나 파라미터, 리턴 등에 대해 쉽게 제공할 수 있게 해준다고 한다. 이걸로는 정보가 좀 부족한 것 같다. 요새 ChatGPT가 코딩조무사처럼 잘 도와주고 있던데 한번 예제 코드를 달라고 해 봤다. @RequestMapping("/use..
· JAVA/spring
0. 이 글을 쓰는 이유 로깅을 정말 아무것도 없는 상태에서 처음부터 적용하려고 하면 어떻게 해야 하나 정리를 하기 위함 공식 도큐먼트 : logback : https://logback.qos.ch/manual/configuration.html spring-boot : https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging Chapter 3: Configuration In symbols one observes an advantage in discovery which is greatest when they express the exact nature of a thing briefly and, a..
· docker
0. 이 글을 쓰는 이유 이번에 MariaDB로 컨테이너 설정하다가 conf파일과 최초 컨테이너 생성 시 초기화를 하는 방법에 대해 알게 되어 정리하려고 작성함 1. 최초 컨테이너가 동작하면서 sql을 실행해야한다면 결론먼저 컨테이너가 동작할 때 docker-entrypoint-initdb.d 디렉터리에 실행하고자 하는. sql파일들을 넣어주면 된다. FROM mariadb ADD ./mysql-init-files /docker-entrypoint-initdb.d EXPOSE 3306 처음에는 행복회로를 좀 돌렸다. 쿼리를 실행해서 스키마와 테이블을 만들고 해당 컨테이너로 이미지를 만들면 해당 테이블과 스키마가 같이 저장된 이미지가 만들어질 것 같았다. 하지만 어림도 없었다. 왜냐하면 이미지는 생성되는 ..
0. 이 글을 쓰는 이유 java를 완전 처음 접하면 try catch와 throw에 대해 생각이 좀 많아질 수 있는데 최대한 간단하게 설명을 하고 내 생각을 정리하기 위함 1. throw? 이름 그대로 생각하면 던진다는 뜻이다. java에서는 에러를 "다른 메서드에게 던진다" 정도로 생각하면 될 것 같다. 2. try - catch (- finally) 이름 그대로 생각하자. 시도하고 잡고 마침내 뭔가를 한다. try 블록에서 시도하다가 문제가 발생한 경우 catch문에서 후속조치를 할 수 있다. 이후 옵션 사항으로 finally문을 통해 try가 다 끝나던 catch로 후속조치를 하던 아무튼 무조건 실행해야 하는 로직은 finally 블록에서 진행한다. 3. 본론 3-1. throw는 책임전가? tr..
· JAVA/spring
0. 이 글을 쓰는 이유 평온하게 개발을 하던 중 환경에 따라 동적으로 flyway의 sql파일에서 값을 변경하여 넣어줘야 할 일이 생겼다. 다른 곳들은 뭐 @Value로 잘 가져오면 괜찮던데 Flyway는 딱 하나가 달라서 리마인드 겸 정리를 해보고자 한다. 1. 사건의 발단 proxy table(db link)를 위해 외부 ip를 가져와야하는데 flyway는 모든 프로파일에 걸쳐 동작을 하고 외부 database ip는 각 상황(dev, live)등에 따라 고정값이지만 다른 값이었다. 그러면 믿을 수 있는 부분은 application의 properties파일이고 어떻게 가져와야 할까 create table tmp_table( //중략 ) engine=CONNECT table_type=MYSQL dbn..
· JAVA/spring
0. 이 글을 쓰는 이유 스프링에서는 컨트롤러를 통해 서비스가 동작하는 도중 내가 에러 핸들링을 하지 않은 경우에 대해도 was가 죽지 않고 계속 떠있는 것을 볼 것이다. 우리가 일반적으로 자바로 프로그램을 수행해 보면 별도의 예외 처리가 없는 경우 해당 애플리케이션은 바로 죽게 되는데 스프링에서는 그렇지 않다. 어떻게 이게 가능한 것일까에 대해 궁금해져서 알아보고자 했다. 1. 사전 지식 1-1. Filter 스프링에는 Filter라는게 존재한다. 이게 뭐 하는 놈이냐 하면 WAS가 servlet container에게 request를 던져주면 그걸 적절히 필터링한 후 servletrequest와 servletresponse를 servlet에게 던져준다. 이후 response가 나올 시점에 다시 Filt..
1편 : https://developer-youn.tistory.com/124 jvm 조금씩 알아가기 1편 - jvm이란 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader developer-youn.tistory.com 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124..
1편 : https://developer-youn.tistory.com/124 jvm 조금씩 알아가기 1편 - jvm이란 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader developer-youn.tistory.com 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124..
Berno
흔한 컴공 출신 개발자