전체 글 250

Spring Boot 3 + Spring Security 6 + Swagger 3 으로 기본 Rest API CRUD 구현하기

개발환경 Spring Boot 3.1.3 Spring Security 6.1.3 Swagger 3 Swagger 프론트 백 간 API를 사용할 때 문서로 작성해야 함 - API 문서 자동화 - 간편한 API 확인 1. Swagger 라이브러리 그새 또 버전이 업그레이드 돼서 이전 버전으로 하면 안됩디다.. https://springdoc.org/ OpenAPI 3 Library for spring-boot Library for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file. springdoc.org maven..

Spring 2023.08.27

[Programmers] 이상한 문자 만들기

문자 사이의 공백을 어떻게 처리해야 하나... * 내 풀이 -> 틀림 import java.util.*; class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(); String[] arr = s.trim().split(" "); for(String str : arr) { for(int i=0; i 공백 유지 String str = "수박:사과:배:메론:::"; // limit = 0 String[] arr = str.split(":");// {"수박", "사과", "배", "메론"} // limit > 0 String[] arr = str.split(":", 3);// {"수박", "사과", "배:메..

[Programmers] 3진법 뒤집기

내 풀이 StringBuilder로 reverse를 할까 했는데 StringBuilder Integer 왔다갔다 하면 속도가 느려질까봐 어케든 integer로만 풀려고 했음 import java.util.*; class Solution { public int solution(int n) { List list = new ArrayList(); int answer = 0; int j = 1; while(n > 0) { list.add(n%3); // {0, 0, 2, 1} n /= 3; } for(int i = list.size() - 1; i >= 0; i--) { answer += list.get(i) * j; j *= 3; } return answer; } } 다른 사람 풀이 깔끔하고 좋은데 속도가 느..

[Programmers] 같은 숫자는 싫어 - 여러 방법

뭔가 큐를 사용해야되는 건줄 알았는데 import java.util.*; public class Solution { public int[] solution(int []arr) { List list = new ArrayList(); Queue q = new LinkedList(); for(int n : arr) { q.offer(n); } int temp = q.poll(); list.add(temp); while(!q.isEmpty()) { int now = q.poll(); if (now != temp) { list.add(now); } temp = now; } return list.stream().mapToInt(i->i).toArray(); } } 일단 실패 스택 사용 import java.util..

[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 5. 스프링 시큐리티, OAuth2.0, Thymeleaf로 소셜로그인 기능 구현하기

1. 구글 로그인 1) 구글 로그인 설정 https://darrenlog.tistory.com/38 [OAuth 2.0] 개념과 Google OAuth2.0 세팅부터 스프링부트로 구현-1 안녕하세요. 이번 게시글에서는 OAuth 2.0에 대한 간략한 개념과 스프링부트 환경에서 직접 구현해보는 단계까지 다뤄보도록 하겠습니다. OAuth, Open Authorization 정의 OAuth는 인터넷 사용자들이 비밀 darrenlog.tistory.com 2) application-oauth.properties 등록 spring.security.oauth2.client.registration.google.client-id=클라이언트 ID spring.security.oauth2.client.registratio..

Spring 2023.08.21

[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 4. 타임리프로 화면 구성하기

책은 머스테치로 했지만 나는 타임리프로 1. 템플릿 엔진 1) JSP (JavaServer Pages) 자바 기반의 서버 사이드 템플릿 엔진 자바 코드( ) + HTML 코드 혼합 서버 측에서 페이지 동적 생성 서버에서 자바코드로 문자열을 만든 뒤 HTML로 변환하여 브라우저로 전달 2) Thymeleaf 자바 기반의 서버 사이드 템플릿 엔진 HTML 문서 내에서 Thymeleaf 태그 사용 스프링 프레임워크와 통합이 잘 되어있음 HTML을 유효한 HTML로 유지하면서, 동시에 동적 페이지를 생성할 수 있음 (서버에서 페이지 동적 생성 + 서버가 없어도 브라우저에서 실행 가능) 3) React 클라이언트 템플릿 엔진 자바스크립트 프론트엔드 라이브러리 서버에서 벗어난, 브라우저에서 화면 생성 서버에서는 J..

Spring 2023.08.18

[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 3. 프로젝트에 Spring Data JPA 적용하기

요구사항 분석 * 게시판 기능 - 게시글 조회, 등록, 수정, 삭제 * 회원 기능 - 구글/네이버 로그인 - 로그인한 사용자 글 작성 권한 - 본인 작성 글에 대한 권한 관리 1. 의존성 등록 * build.gradle // spring data JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // h2 데이터베이스 runtimeOnly 'com.h2database:h2' spring-boot-starter-data-jpa 스프링 부트용 Spring Data Jpa 추상화 라이브러리 스프링 부트 버전에 맞춰 자동으로 JPA 관련 라이브러리들의 버전 관리해줌 h2 인메모리 관계형 데이터베이스 별도의 설치 X, 프로젝트 의..

Spring 2023.08.11