Computer Science/Spring boot
-
spring boot 에서 JWT 사용하기.Computer Science/Spring boot 2022. 9. 4. 18:43
JWT란 Json Web Token의 약자로 token방식의 인증을 할 때 사용한다. Jwt를 사용하는 이유로는 1. Token을 client에서 저장하기 때문에 서버에서 관리할 필요가 없어 서버의 확장성에 용이하다. 2. 무결성이 장점으로 토큰을 HMAC(Hash-based Message Authentication) 기법으로 발급하기에 토큰의 정보를 변경하는 행위가 불가능하다. 하여 보안적인 측면에서 client가 변조된 값으로 server에 접근하기 어렵다. JWT는 크게 3가지로 구성이 되어있는데 aaaa.bbbb.cccc (header).(payload).(signature) 로 구성되어있다. header Token의 타입과 Hash알고리즘을 지정하는 정보를 가지고 있다. { "typ":"JWT"..
-
spring boot datadog json으로 log 남기기.Computer Science/Spring boot 2022. 8. 5. 16:31
datadog.yaml에서 log 기능을 우선 enable 해준다. /etc/datadog-agent/datadog.yaml 에 대부분 위치해 있다. logs_enabled: true 로 변경 해준뒤 저장하고, datadog-agent/con.d 에 java.yaml 파일을 만들어준다. #Log section logs: - type: file path: "/path/to/your/java/log.log" service: java source: java sourcecategory: sourcecode # For multiline logs, if they start by the date with the format yyyy-mm-dd uncomment the following processing rule #..
-
Cerbot을 통한 SSL 발급받아 Spring boot에 적용하기Computer Science/Spring boot 2022. 7. 27. 03:05
https://certbot.eff.org/instructions?ws=other&os=arch SSL 인증서 받기 sudo certbot certonly --standalone 를 통해 SSL 인증서를 발급받는다. Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/subbak2.com/fullchain.pem Key is saved at: /etc/letsencrypt/live/subbak2.com/privkey.pem 2가지 pem키를 얻을 수 있다. 인증서 tomcat용으로 변경 SSL 인증서를 spring boot 에서 필요한 형식 즉 tomcat이 사용하는 형식으로 변경한다.(PKCS12) opens..
-
Spring boot에 APM(dataDog) 적용하기.Computer Science/Spring boot 2022. 7. 26. 00:09
https://docs.datadoghq.com/logs/log_collection/java/?tab=log4j datadog 문서 링크이다. log를 남기는 방법이 크게 2가지가 있는데 logger에서 실시간으로 log를 datadog에 전송하는 방법. Agent Jop을 통해서 로그를 동기화하는 방법이 있다. 우선 Agent를 설치해준다. 어플리케이션 성능을 측정해줄 도구이다. 이를 각 서버에 설치한다면 이후 통합해서 확인 할 수 그전에 agent가 잘 실행이 되는지 확인을 해준다. https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/java/?tab=containers 이곳에서 각종 agent관련 명령어를 확인 할 수 있다. https..
-
Spring boot 시작 시 함수 실행하고 싶을 때.Computer Science/Spring boot 2022. 7. 17. 18:00
@Component @Slf4j public class CrawlComponent implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception{ setAllMatchList(); } 해당 component에 applicationRunner를 implements 해준 뒤 run 함수를 override하면 해당 함수는 프로그램이 시작하면 바로 진행하게 된다.
-
Spring boot 시작 시 database에 값 넣기.Computer Science/Spring boot 2022. 7. 17. 17:58
data.sql 파일을 만들어서 그 파일에 실행할 쿼리를 집어 넣는다. data.sql을 스프링 버전이 올라가면서 2.5 버전부터는 application property를 추가해주어야한다. sql: init: encoding: UTF-8 continue-on-error: true mode: always mode를 always 해야 적용이된다. 다만 만약에 table을 생성후 해당 sql을 실행하고 싶다면 jpa: show-sql: true hibernate: ddl-auto: create defer-datasource-initialization: true defer-datasource-initialization을 true진행을 하여야 table을 만든뒤 sql을 실행하게된다.
-
Jpa entity 다대다, 다대일, 일대다 설정하기.Computer Science/Spring boot 2022. 7. 15. 15:59
다대다의 경우를 통해 다대일과 일대다 모두를 구현. 다대다의 경우 many to many를 사용하는 것이 아닌 중간 table를 생성하고 (1대다 와 다대1) (다대1과 1대다)로 묶어서 진행한다. @OneToMany(mappedBy = "userEntity") private List teamUserEntityList; mappedBy는 상대 ManyToOne의 이름으로 사용한다. 외래키 권한이 상대방 쪽에 있다는 것을 의미한다. 1대다 구조는 단방향 보다는 양방향으로 진행하고 키 권한을 다 쪽에 두어 관리하도록 한다. @ManyToOne @JoinColumn(name = "userId") private UserEntity userEntity; JoinColumn에는 내가 사용할 외래키 id이름을 적으면..
-
MySQL Json type을 Jpa로 다루기Computer Science/Spring boot 2022. 7. 15. 15:43
우선 json타입을 다룰려면 새로운 타입이여서 해당 dependency를 추가해주어야한다. implementation 'com.vladmihalcea:hibernate-types-52:${hibernate-types.version}' @Type(type = "json") @Column(columnDefinition = "json") private Test jsonObject; @NoArgsConstructor @Getter public class Test { private Long id; private Long tt; public Test(Long id, Long tt) { this.id = id; this.tt = tt; } } 위에 처럼 진행하여도 {"id":1,"tt":2} 로 입력된다. @Type..