일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- sap ERP
- pygame
- Spring
- 스프링부트 채팅서버
- 스프링부트
- javascript
- SQL
- oracle
- js
- oauth2
- 자바 스트림
- 스프링
- LeetCode SQL
- 코틀린 클래스
- 구글로그인
- 자바스크립트
- spring boot
- mysql
- java8
- springboot
- 오라클
- kotlin 클래스
- SQL 문제풀이
- SQL프로그래머스
- 스프링시큐리티
- 프로그래머스
- SAP ABAP
- Leetcode
- MSA
- python
- Today
- Total
목록Spring (10)
웅겹살의 프로그래밍 삼매경

Spring Framework는 EJB의 복잡성에 대한 대안으로 개발.현재까지도 범용적으로 사용되고있는 프레임워크. 시간이 지나면서 Spring Framework도 복잡한 설정이 필요하게 되었고 COC(Convention Over Configuration)개념을 탑재한 모던 프레임워크가 등장. Spring 진영에서도 이러한 모던 프레임워크들의 장점을 받아들이고, MSA 환경에 최적화된 프로젝트를 개발했는데 이것이 바로 Spring Boot Spring Boot 특징 ⚡ Auto Configuration 특정 jar가 class path 안에 있을 경우 해당 설정을 자동화 가능 Spring MVC jar가 class path 안에 있으면 Dispatcher Servlet 을 자동으로 구성해준다. 또한 기존..

@ComponentScan @Component와 @Service, @Repository, @Controller, @Configuration이 붙은 클래스 Bean들을 찾아서 Context에 bean등록을 해주는 Annotation이다. @Component Annotation이 있는 클래스에 대하여 bean 인스턴스를 생성 ApplicationContext.xml에 과 같이 xml에 bean을 직접등록하는 방법도 있고 위와 같이 Annotation을 붙여서 하는 방법도 있다. base-package를 넣으면 해당 패키지 아래에 있는 컴포넌트들을 찾고 그 과정을 spring-context-버전(4.3.11.RELEASE).jar에서 처리한다. Spring에서 @Component로 다 쓰지 않고 @Reposi..

@Valid 어노테이션으로 파라미터 검증하기 따로 dependency해 줄 필요가 없었지만 지금은 dependency 해줘야 작동하는듯하다.. valid 라이브러리 받는 곳 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation 나는 2.4.4 버전을 사용한다. org.springframework.boot spring-boot-starter-validation 2.4.4 implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.4.4' javax.validation이 제공하는..

oauth2 구글, 페이스북, 네이버 적용완료 자세한 내용은 추후 작성하고 주요작업파일 기록한다 1. application.yml 2. PrincipalOauth2UserService 3. FacebookUserInfo 4. GoogleUserInfo 5. NaverUserInfo 6. Oauth2UserInfo 7. SecurityConfig

oauth2 google 로그인화면까지 띄우는 내용 기록한다 1. console.cloud.google.com/apis 접속한다 https://console.cloud.google.com/apis Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 2. 체크표시된 부분 클릭 후 뜨는 팝업에서 새 프로젝트 생성 클릭 3. 사용할 프로젝트 이름 기입 4. 앱 이름, 본인 이메일만 기입하고 넘어간다. 5. 범위, 테스트 사용자는 바로 넘어간다 6. 마지막 요약 화면에서 확인 후 만들기 클릭 7. 생성한 프로젝트로 접속 8. 사용자 인증정보 > Oauth 클라이언트 ID 클릭 후 ..

카카오로그인 작업중 oauth2로 추후 변경예정 구글 페이스북 등등 다해버리자 RestAPI같은 방식으로 회사에서 많이해서그런지 익숙하다 역시 RestTemplate 사용하는 방식이 편하다 카카오로그인 토큰요청까지 작업함 필요한 내용 주석달았음 카카오에서 제공하는 로그인버튼 넣었더니 간지작살난다 @GetMapping("/auth/kakao/callback") public @ResponseBody String kakaoCallback(String code){ // POST방식으로 key=value 데이터 요청(카카오쪽으로 찌른다) RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.ad..

회원수정 DB, 세션 둘다 수정되는 로직 기록한다 필요한 내용 주석으로 달아둠 OAUTH2 작업중으로 수정예정 1. UserApiContoller @PutMapping("/user") public ResponseDto update(@RequestBody User user){ userService.update(user); // 여기서는 트랜잭션이 종료되기 때문에 DB값은 변경이 됐음 // 하지만 세션값은 변경되지 않은 상태이기때문에 세션값 갱신이 필요함 // 세션 등록 Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(user.getUsername(), user.ge..

스프링부트 + JPA + 스프링시큐리티 프로젝트 진행중 시큐리티 관련내용 기록용으로 글 작성한다 OAUTH2 작업중으로 추가예정 설명 필요한부분 주석달아둠 1. SecurityConfig package com.leo.blog.config; import com.leo.blog.config.auth.PrincipalDetailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.secur..

URL 관련 이름 사용법 설명 Context-relative URL 서버 내 특정 위치로 이동 Adding Parameter URL 파라미터를 추가하는 방식의 URL 첫번째 줄은 고정적인 값을 넘길때, 두번째 줄은 서버에서 받아온 값을 넘길때 If/Else, For 문 이름 사용법 설명 if/else th:if = "${size} == '0' " th:unless = "${size} == '0' " 프로그래밍에 if else. for th:each="obj : ${list}" 향상된 for each문이라고 생각하면 된다. ${list}에 있는 객체가 obj로 맵핑된다. If/Else, For문 예제 Table에서 사용시, 아래와 코드와 같이 혼합해서 사용가능. ${list}객체를 user가 받아 user..

@RequestMapping => value에는 url, method는 get, post 같은 HTTP 프로토콜 방식을 써주면 된다. 즉 클라이언트가 URL로 서버에 요청을 하면 해당 URL을 맵핑하고 있는 메소드가 해당 요청을 처리하고 응답해준다고 보면 된다. @ResponseBody => HTTP 의 body를 읽는데 필요하다. ajax로 통신할 때 json 메세지를 읽는데 필요하여 사용했으며, ajax에게 map형태로 간단한 성공 여부를 알려주기위해 return type을 Map 타입으로 하였다. @RequestParam => 타임리프의 input의 name이나 Get방식 url의 키값같은, 즉 클라이언트로부터 요청받은 키의 이름과 매핑하여 컨트롤러에서 사용할 수 있다. @ModelAttribute..