728x90
반응형
- [ Spring/Spring boot ]시간 측정하는 간단한 aop2022-12-22 12:01:26시스템이 느리거나 각 로직별 시간 측정이 필요한 경우 aop 를 사용하여 측정 가능 노가다 안해도 됌 package com.example.whystd.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; // Aspect 를 적어줘야 aop로 사용가능 // Component 사용하면 Component 스캔되어 빈 등록 @Aspect @Component public class TimeTraceAop { @Around("executio..
- [ Spring/Spring framework ]스프링 빈 자바코드로 직접 설정2022-12-21 11:17:27@Configuration public class SpringConfig { /* * 스프링 빈을 직접 설정 할 때의 장점 * : db 를 변경할때 repository 만 변경해주면 나머지 * 코드를 손대지 않고 변경 가능. * */ @Bean public MemberService memberService() { return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } /* 아래 처럼 변경해주면 끝 @Bean public MemberRepository memberRepository() { return new DbMem..
- [ Spring/Spring Security ]OAuth 개념2022-08-24 16:18:39OAuth Open Authorization : 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 들이 자신들의 정보에 대해 웹사이트나 어플에 정급 권한을 부여하는 공통적인 수단. 한마디로 한 사이트에서 공유를 시작하면 다른 곳에서 따로 인증을 안받아도 된다는 소리임 페이스북 - 인스타 느낌이라고 생각하면 편할듯 OAuth vs OpenID OAuth : 사용자가 누구인지 인증하는것이 아닌, 요청이 권한이 있는지를 확인하는 인가 프로토콜 OpenID : 사용자가 누구인지 인증하는것 용어 사용자 (user) : 서비스 제공자와 소비자를 사용하는 계정을 가지고 있는 개인 소비자 (consumer) : Open API 를 이용하여 개발된 OAuth 를 사용하여 서비스 제공자에게 접근하는 웹사이트 또는 ..
- [ Spring/Spring Security ]Security 권한처리하기2022-08-24 14:45:19시작하기 전에 전에 만든걸로 회원 가입을 해주자 manaer admin 현재 권한은 전부 ROLE_USER ! 해당 권한의 페이지로 잘 들어가지는지 확인을 위해 db에서 직접 권한을 수정해주자 가입시에 권한은 따로 만들면 된다 UPDATE user SET role = 'ROLE_MANAGER' WHERE id = 2; UPDATE user SET role = 'ROLE_ADMIN' WHERE id = 3; id는 해당 데이터에 맞게 넣어주면 된다. 그후 manager 로 로그인 후 /manager 을 가보면 페이지를 만들지 않아서 그렇지 밑에 type 과 status 를 보면 제대로 접속이 된걸 확인 할 수 있다 하지만 admin 을 가보면 어떨까 당연히 권한이 없어서 안됨 SecurityConfig p..
- [ Spring/Spring Security ]시큐리티 로그인2022-08-24 11:43:11전의 게시물과 이어짐 SecurityConfig package com.example.security.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annota..
- [ Spring/Spring Security ]security 로 간단한 회원가입과 비밀번호 암호화2022-08-23 18:36:31Spring boot template 종속성 Srping Boot DevTools Lombok Spring Data JPA mariaDB Driver Spring Security Mustache Spring Web 간단하게 웹에서 회원가입 (비밀번호 암호화) , 페이지 인증처리, JPA 테이블 생성, bean 으로 Ioc 설정을 해보자 완성본을 올리는거라 순서는 안맞음 indexController package com.example.security.controller; import com.example.security.model.User; import com.example.security.repository.UserRepository; import org.springframework.beans.facto..
- [ Spring/Spring boot ]JPA 로 데이터 액세스2022-08-17 11:55:08Spring Data JPA 를 사용하여 관계형 데이터베이스에 데이터를 저장하고 검색하는 애플리케이션을 구축해보자 종속성 Spring Data JPA H2 Database Entity 생성 package com.example.accessingdatajpa; import lombok.Data; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; // @Table 주석이 없으므로 이 Entity 는 Customer 이라는 테이블에 매핑된다고 가정 @Entity @Data public class Custom..
- [ Spring/Spring boot ]mariadb로 데이터 액세스2022-08-16 18:24:55Mariadb 데이터베이스를 만들고 Spring boot 애플리케이션 구축해서 자동으로 컬럼을 생성하고 해당 db와 연동을 해보자 종속성 Spring Web Spring Data JPA Mariadb dirver application.properties spring.jpa.hibernate.ddl-auto=create // create로 설정한 이유 : 데이터베이스 구조가 없음 텅빈 깡통이여서 spring.datasource.url=jdbc:mariadb://localhost:3306/[db이름]?characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=[스키마이름] spring.datasource.password=[비밀번호] sprin..
- [ Spring/Spring boot ]Restful 웹 서비스 구축2022-08-16 16:06:37http get 요청을 수락하는 서비스를 만들어보자 프로젝트를 만들고 종속성에 Spring Web 을 추가 { "id": 1, "content": "Hello, World!" } 쿼리 매개변수를 보내면? 요런 JSON 데이터를 반환할것임 src/main/java/에 객체를 하나 생성 package com.example.restservice; import lombok.Data; @Data public class Greeting { private final long id; private final String content; } Jackson JSON 라이브러리가 자동으로 JSON 형태로 자동 마샬링 해준다 Jackson Starter에 기본적으로 포함된 기능 리소스 컨트롤러 생성 package com.ex..
- [ Spring/Spring boot ]스프링부트 개념정리 22022-07-27 18:02:02스프링부트 동작원리 내장 톰켓을 가지고 있다 socket : 운영체제가 가지고 있는 것 통신 : 연결시 스레드를 생성 > 연결이 계속 유지 > 부하가 심함 http 통신 : 문서를 전달하는 통신 / Stateless 방식 - 한번 연결후 응답을 하면 response 후 연결 끊음 - 부하가 적지만 다시 연결되면 새로운 것으로 인식 (같은 곳에서 요청을 하더라도 전에 요청했던 곳인지 알 수 없음) - 문서전달의 목적으로 만들어짐 html(확장자) 톰켓 소켓을 불러서 사용 (system call) http 기반 = 소켓 톰켓과 웹서버의 차이 ? 웹서버 : url 의 마지막 l = location static 자원 : 정적인 자원 아파치 = 요청을 받고 응답을함 (HTML, CSS, PNG... ) 톰켓 : ..
- [ Spring/Spring boot ]스프링부트 개념정리2022-07-26 13:52:39class - 설계도 (의자 설계도) abstract class - 추상적 설계도 (가구 설계) interface - 실체화가 된 것 (의자) ioc - 제어의 역전 (주도권이 스프링에 있음) IoC 컨테이너 - 제어의 역전 누누 클래스를 만들었는데 다른곳에서 누누를 쓰고 싶을때 ? 스프링이 객체를 스캔해서 heap 메모리에 저장해둔다 스프링이 객체를 관리 누누를 하나만 만들어서 가져가서 씀 DI dependency injectsion 의존성 주입 IOC 에서 스캔해준 하나의 object를 가져가서 씀 heap 메모리에 A라는 [이름을 가진] 클래스가 없다면 해당 변수에는 null 이 아니고 해당 type를 heap 에서 찾아서 값을 넣어준다. 그것이 DI 많은 필터를 가지고 있다 web.xml 은 필터..
- [ Spring/Spring framework ]Spring message arguments2022-03-30 11:46:23스프링 메시지를 사용하다보면 동적인 메시지를 출력해야하는 상황이 생긴다. 예시 : 나이별 출력 properties - > age = {0}세 일때 나이를 출력 결과에 따라 바꾸기 위해 Spring message 속성인 arguments 를 사용해보자. 이런식으로 arguments에 값을 할당하면 10세 20세 30세 이런식으로 출력된다 !
728x90
반응형