전체 글

개발 공부 기록
· 개발/Java
🫠 코테에서 자주 쓰는 기본함수 2편 (자료구조) 1. Stack LIFO (Last In First Out) 구조 Stack stack = new Stack(); Stack stack = new Stack(); stack.push(1); // (값 추가) stack.pop(); // (맨 위의 값 삭제, 없으면 EmptyStackException) stack.clear(); // (값 전체삭제) stack.peek(); // (맨 위의 값 출력) stack.size(); // (크기) stack.empty() // (비어있으면 true, 아니면 false) stack.contains(1) // (1이 있으면 true, 아니면 false) 2. Queue FIFO (First In First Out) 구..
· 개발/Java
🫠 코테에서 자주 쓰는 Java 기본 함수 1편 1. char char ch = 'a'; Character.isUpperCase(ch); // (ch는 대문자인가? false) Character.isLowerCase(ch); // (ch는 소문자인가? true) Character.isLetter(ch); // (ch는 문자인가? true) Character.isDigit(ch); // (ch는 숫자인가? false) Character.isWhitespace(ch); // (ch는 공백문자인가? false) Character.toUpperCase(ch); // (대문자로 A) Character.toLowerCase(ch); // (소문자로 a) String str = Character.toString(ch..
😅 이전 포스팅에서 구글, 네이버, 카카오의 클라이언트 ID와 비밀번호를 전부 생성했다 SpringBoot에서 구현해보자 (ver 2.7.18) 1. loginForm - 로그인버튼 만들기 구글 로그인 카카오 로그인 네이버 로그인 2. User.java - provider, providerId 컬럼 추가 @Data @NoArgsConstructor @AllArgsConstructor @Builder @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String username; private String password; private String email; p..
🥴 스프링부트 OAuth 로그인을 위한 사전준비를 할 것이다 클라이언트 ID와 비밀번호는 외부에 노출되지 않도록한다 0. application.yml - yml파일에 클라이언트ID와 비밀번호를 입력하기위해 미리 세팅해두기 - 구글, 페이스북, 트위터 등과 다르게 kakao, naver는 provider를 등록해줘야한다 spring: # 나머지 코드 security: oauth2: client: registration: google: client-id: #클라이언트 ID client-secret: #클라이언트 보안 비밀번호 scope: - email - profile naver: client-id: #Client ID client-secret: #Client Secret scope: - name - ema..
🤔 로그인 실패 시 아무런 메세지가 나오지 않아 사용자 입장에서 불편할 수 있다 화면에 에러메세지를 출력하자 (SpringBoot ver 2.7.18) 1. LoginFailureHandler.java - 로그인 실패 핸들러 만들기 @Component public class LoginFailureHandler extends SimpleUrlAuthenticationFailureHandler { @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException ..
😱 다음 아키텍처를 살펴보고 시작해보자 (SpringBoot ver 2.7.18) - 스프링 보안 인증 프로세스와 관련된 클래스 및 필터 목록을 보여주는 다이어그램 1. SecurityConfig.java - 시큐리티 설정하기 (사용한 SpringBoot 버전 2.7.18) @Configuration @EnableWebSecurity // 스프링 시큐리티 필터가 스프링 필터체인에 등록됨 public class SecurityConfig { @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http // 1. CSRF 해제 .csrf((csrfConfig) -> csrfConfig.disable()) // 2. 인증, 권..
🙂 이미지 S3 업로드를 마무리하고 썸머노트에도 적용시켰다 1. FileManagerController.java - 이전 포스팅에서 만든 FileManagerController의 내용을 수정해줬다 import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; import com.google.gson.JsonObject; import org.apache.commons.io.FilenameUtils; import org.springframework.beans.factory.annotation.Au..
😰 썸머노트의 자체 이미지 저장 방식은 base64를 사용하기에 서버에 다소 무리가 있다 그래서 이미지는 내 컴퓨터에 저장하면서 이름은 uuid로 새로 생성해 줄 것이다 1. pom.xml - dependency 추가 (Maven) org.jsoup jsoup 1.14.3 com.google.code.gson gson commons-io commons-io 2.11.0 2. application.yml - json 컨버터를 gson으로 세팅, 업로드파일 용량 수정 spring: mvc: view: prefix: /WEB-INF/views/ suffix: .jsp converters: preferred-json-mapper: gson servlet: multipart: max-file-size: 20MB ..
tanda
저장소