분류 전체보기

Spring/공부

Spring MongoDB 어노테이션 정리

RDBMS, MongoDBtable, collectionrow, documentcolumn, field @Document: 몽고디비 컬렉션으로 매핑되는 객체임을 선언. 컬랙션의 이름을 매개변수로 부여 할 수 있으며, 별도 지정 없다면 클래스 이름이 컬랙션 이름이 된다.ex) @Document(collection="article") @Id: 문서의 아이디 프로퍼티임을 선언. 일반적으로 String 타입 사용됨@Field("필드 이름"): 모델 객체의 프로퍼티가 매핑되는 몽고디비의 필드 이름을 선언. 어노테이션 생략될 경우 프로퍼티 이름이 그대로 쓰인다.@Indexed: 해당 필드에 인덱스를 생성. 인덱스가 ..

Spring/공부

gradle boot 3.xx QueryDSL 설정

# build.gradledependencies { // query dsl for jpa implementation 'com.querydsl:querydsl-jpa::jakarta' annotationProcessor 'com.querydsl:querydsl-apt::jakarta' annotationProcessor 'jakarta.annotation:jakarta.annotation-api' annotationProcessor 'jakarta.persistence:jakarta.persistence-api'} jpa 쿼리 개발 용 #ymlspring: jpa: show-sql: true properties: hibernate: ..

Spring/공부

스프링 초기 실행 작업을 위한 ApplicationRunner, CommandLineRunner

interface Runner {}@FunctionalInterfacepublic interface ApplicationRunner extends Runner { void run(ApplicationArguments args) throws Exception;}@FunctionalInterfacepublic interface CommandLineRunner extends Runner { void run(String... args) throws Exception;}스프링 빈들이 모두 생성, DI가 끝난 뒤 실행되는 코드를 작성 하고 싶을 때 사용 ex)- 서버 시작 시 초기 데이터 넣기- 캐시 미리 로딩- 외부 API 초기 연결- 관리자 계정 자동 생성- 스케쥴러/MQ 선행 연결 1. ApplicationR..

Spring/공부

스프링 프로퍼티 정리

# application.propertieslogging.level.root = warn # 출력할 로그 파일 경로logging.file.name = ./log/app.log# 로그 백업 시 파일 이름의 패턴(%d는 백업 날짜, %i는 동일한 날짜에 여러 개의 백업 파일이 생성 될 경우 1부터 시작하는 일련번호, 확장자가 gz라면 gzip으로 백업 파일압축)logging.logback.rollingpolicy.file-name-pattern=.log/app.backup.%d{yyyy-MM-dd}.%i.gz# 백업 파일의 보관 일수logging.logback.rollingpolicy.max-history=7# 로그 파일의 크기가 10KB 넘으면 백업logging.logback.rollingpolicy.ma..

Spring/공부

스프링 빈 등록 방법 @Component, @Bean

1. @Component 방식@Componentpublic class TestService {}- 스프링이 실행 시 컴포넌트 스캔으로 클래스 경로를 스캔해서 자동으로 객체 생성 + 빈 등록- 보통 내가 직접 구현한 클래스를 빈 등록 할 때 씀 (Service, Controller, Repository)/** * Indicates a {@link Configuration configuration} class that declares one or more * {@link Bean @Bean} methods and also triggers {@link EnableAutoConfiguration * auto-configuration} and {@link ComponentScan component scanning..

프로젝트/로서치

[로서치] 로아 검색 사이트 프로젝트 - 외부 api 요청, RestTemplate? WebClient?

우선 정보를 LostArk OpenAPI에서 가져와야한다.가져오기 위해선 API Key 발급이 필요하다https://developer-lostark.game.onstove.com/clients[STOVEStay logged in. Use only on personal devices.accounts.onstove.com](https://developer-lostark.game.onstove.com/clients)발급을 받으면 jwt로 된 api 키가 발급 된다.분당 요청 100개 까지라네요 ㅠㅠ 늘리려면 요청을 해야합니다 뭐 대단한 사이트가 되면 추가요청 해보겠습니다외부 api 요청 하는 법은 일단은... RestTemplate, WebClient를 비교해야겠습니다.일단 문서상에는 RestTemplate..

프로젝트/로서치

[로서치] 로아 검색 사이트 프로젝트 - 1

로스트아크(로아)를 플레이 하다 보면 외부 사이트를 자주 쓴다. 로아와, 즐로아, 클로아 등등등 게임 닉네임을 검색하면 이렇게 해당 유저의 캐릭터 정보들이 로아 OpenAPI를 통해 가져온다. 그리고 우린 게임을 하다보면 몬생긴 갑옷들 말고 옷 꾸미기 욕구가 생겨서 아바타를 지르게 된다..각 아바타당 염색 시스템이 존재한다. 그래서 내가 하고 싶은 대로 염색을 할 수 있다. 한정적인 커스텀이지만... 가끔 그럴때가 있다. 지나가는 다른 잘꾸민 유저 캐릭터를 보면 어? 저 아바타 뭐지? 하면서 인게임에서 유저 정보 찾기를 하면 인게임에선 RGB값을 볼 수 있다. 하지만 나와 다른 서버 혹은 위와 같이 방송에서 보이는 유저의 아바타 염색코드가 이뻐 보일때는????? 부끄러움을 무릎쓰고 추출하는 방법이 있..

프로젝트

[N+1] 문제를 겪었다.

@Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@ToString@Table(name = "orders")public class Order extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) @ToString.Exclude private User user; @Column(nullable = true) private String ti..

synclair
'분류 전체보기' 카테고리의 글 목록