목록Backend/스프링부트 (41)
개발 무지렁이

🪛 Application.yml spring: thymeleaf: cache: false prefix: classpath:/templates/ suffix: .html devtools: livereload: enabled: true restart: enabled: true datasource: url: jdbc:h2:tcp://localhost/~/test username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create server: port: [지정한 포트번호] my: admin: [kakao developers에서 발급받은 admin key] 📜 payment.html kakao pay 🖤 카카오 페이(단건..

📕 참고 자료 📕 𐂂 AOP (Aspect Oriented Programming)가 필요한 상황 ❓시간을 측정하는 로직을 모든 메서드에 적용하려면 시간을 측정하는 로직이 핵심 관심사항(CORE CONCERN)은 아니지만 모든 메서드에 들어가야 할 공통 관심사항(CROSS-CUTTING CONCERN)이다. 공통 관심사항을 모아놓고 원하는 곳에 적용할 때, AOP가 필요하다. 🗝️ 원하는 적용대상(target)을 지정할 수 있다. 🗝️ 보통 패키지 레벨로 target을 설정한다. 📜 TimeTraceAop.java @Aspect @Component //Spring Bean으로 등록된다. public class TimeTraceAop { @Around("execution(* hello.hellospring...

𐂂 JwtConfig 📜 jwt 비밀키 생성 객체 Bean등록.java @Configuration public class JwtConfig { @Value("${custom.jwt.secretKey}") private String secretKeyPlain; @Bean public SecretKey jwtSecretKey() { String keyBase64Encoded = Base64.getEncoder().encodeToString(secretKeyPlain.getBytes()); return Keys.hmacShaKeyFor(keyBase64Encoded.getBytes()); } } 🦉 @Value("${ }") : 외부 설정파일에서(properties, yml..)에서 값을 가져와 해당 클래스의..

𐂂 (1) 스프링부트 정적 콘텐츠 기능 정적 콘텐츠 파일을 그대로 클라이언트로 내려준다. localhost:8080/hello-static.html과 같은 url로 접근했을 때, hello-static와 매핑되는 컨트롤러를 찾아서 없으면, 🗂️resources/static에서 hello-static.html을 찾아서 있으면 반환한다. 매핑되는 컨트롤러가 있고, 리턴값으로 문자를 반환하면, 뷰 리졸버가 화면을 찾아서 처리한다. (스프링부트 템플릿엔진 기본 viewName 매핑, 🗂️resources:templates/ + {viewName} + .html) 𐁍 MVC와 템플릿 엔진 Model View Controller 방식으로 쪼개고, view를 찾아 템플릿엔진에 연결해주는 구조 (

페이징(Paging) 처리 (1) 전체 레코드(record) 수 => 'count(*)' (2) 전체 페이지 수 => 'PAGE_COUNT', 올림수 (3) 한 페이지 당 뿌려질 레코드 수 (4) 한 블럭당 뿌려질 페이지 수 => 'BLOCK_COUNT' Pageable 인터페이스 데이터를 '페이지 단위'로 조회하는데 쓰이는 인터페이스 - 페이지 번호 (0부터 시작)* - 페이지 크기 (한 페이지에 포함될 레코드 수) - 정렬 기준 ⭐. Pageable 객체: 데이터 조회 요청에 대한 정보를 담고 있다. ⭐. Pageable 객체를 생성하는 정적 팩토리 method, Pageable.of (페이지번호, 페이지크기, 정렬정보를 인자로 받는다.) Pageable p..

[application.yml] spring: profiles: active: dev include: - base-addi security: oauth2: client: registration: kakao: clientId: scope: profile_nickname, profile_image, account_email client-name: Kakao authorization-grant-type: authorization_code redirect-uri: http://localhost:8010/login/oauth2/code/kakao client-authentication-method: POST provider: kakao: authorization-uri: https://kauth.kakao.com..