항해99/스프링 숙련 13

Spring 숙련 주차 개인 과제

FormLogin을 활용할 때와 활용하지 않을 때 어떤 차이점이 있었나요? FormLogin은 http.formLogin().loginPage(“/login.html”) 과 같이 Spring 앱 내부에서 클라이언트 화면을 지정할 수 있습니다. 이 때는 Spring Security 이미 정의된 UsernamePasswordAuthenticationFilter를 활용해 AuthenticationManager에게 인증 토큰을 전달합니다. 이와 달리 JWT를 쓰게 되면, 이미 정의된 Filter가 아닌 우리가 직접 정의한 JWT를 검증할 수 있는 Filter를 만들고, 추가해주어야 하죠. Spring 앱 내부에서 클라이언트와 서버가 모두 구현된다면 Spring Security의 기본 FormLogin을 써도 무..

숙련주차 개인과제 모범답안

FormLogin을 활용할 때와 활용하지 않을 때 어떤 차이점이 있었나요? FormLogin은 http.formLogin().loginPage(“/login.html”) 과 같이 Spring 앱 내부에서 클라이언트 화면을 지정할 수 있습니다. 이 때는 Spring Security 이미 정의된 UsernamePasswordAuthenticationFilter를 활용해 AuthenticationManager에게 인증 토큰을 전달합니다. 이와 달리 JWT를 쓰게 되면, 이미 정의된 Filter가 아닌 우리가 직접 정의한 JWT를 검증할 수 있는 Filter를 만들고, 추가해주어야 하죠. Spring 앱 내부에서 클라이언트와 서버가 모두 구현된다면 Spring Security의 기본 FormLogin을 써도 무..

주특기 2주차 시험 풀이 세션 강의 - 조경민

@RequestMapping : 컨트롤러의 클래스단위 어노테이션 스프링 서비스 전체에 url 접두사는 런타임 시점에 읽어서 주입되는 application.properties //application.properties server.servlet.context-path/sparta servlet 컨트롤러로 리퀘스트가 다 들어와서 그 이후에 핸들러에 의해 처리됨 다른 api규칙 이전에 /sparta 먼저 넣어줌 CustomExceptionHandler regex101.com : 정규표현식 사이트 밑은 설정이라고 생각하면 됨. loadUserByUsername : UserDetailsImpl에 맵핑할 user 정보 로드하기 UserDetailsImpl : UserDetails 인터페이스를 상속받은 것. 스프링..

4주차 메모

x회원 가입 /api/member/signup post x로그인 /api/member/login post 게시글 작성 /api/auth/post post x게시글 조회 /api/post GET x게시글 상세조회 /api/post/{id} GET 게시글 수정 /api/auth/post/{id} PUT 게시글 삭제 /api/auth/post/{id} DELETE 댓글 생성 /api/auth/comment POST x댓글 목록 조회 /api/comment/{id} GET 댓글 수정 /api/auth/comment/{id} put 댓글 삭제 /api/auth/comment/{id} delete mysql 엔드포인트 : springboot-database.c1aotxtidxmh.ap-northeast-2.rds...

주특기 2주차 개인 과제

큰 틀은 1주차 과제였던 CRUD에 로그인 기능이 추가 됨. https://bcp0109.tistory.com/301 Spring Security 와 JWT 겉핥기 Introduction 이 글에서는 Spring Boot + JWT + Security 를 사용해서 회원가입/로그인 로직을 구현했습니다. JWT 와 Spring Security 코드는 인프런 Spring Boot JWT Tutorial (정은구) 강의를 수강하면서 만들고.. bcp0109.tistory.com 위 블로그 보고 따라하면 로그인은 구현 됨. AccessToken이 있고, 유효한 Token이면서 해당 사용자만 접근가능 설정 API에서 /api/auth/**이하 주소의 아이들은 로그인 토큰 인증 필요하게 함. //SecurityCon..

장재영 매니저님 시간에 했던 내용

@Pattern @Size @Valid 상대방과 연관짓기위해 사용하는 키 : 외래키 many to one에서 외래키 가지고 있음 댓글에서 관리 중 댓글에 존재하는 post id가 외래키고 post의 pk를 바라보고 있음. 변경시 연관관계 주인인 댓글에서 변경@JoinColumn mappedBy = "post"는 comment.java에 있는 post @OneToMany(mappedBy = "post", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) fetch = FetchType.EAGER eager : 게시글 조회시 게시글과 댓글가져옴 댓글이 또 연관관계 있을 경우 문제 생길 수 있음.(딸린애들 다 가져옴.) lazy : 게시글 조회시 게시글만 가져옴..

숙련 5 - AWS EC2, RDS

스프링 부트 자바 배포 간단한 리눅스 명령어 연습하기 리눅스는 윈도우 같지 않아서, '쉘 명령어'를 통해 OS를 조작한다. (일종의 마우스 역할) [가장 많이 쓰는 몇 가지 명령어] 팁! 리눅스 커널에서 윗화살표를 누르면 바로 전에 썼던 명령어가 나옵니다. ls: 내 위치의 모든 파일을 보여준다. pwd: 내 위치(폴더의 경로)를 알려준다. mkdir: 내 위치 아래에 폴더를 하나 만든다. cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다. cd .. : 나를 상위 폴더로 이동시킨다. cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기 rm -rf [지울 것]: 지우기 sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다. sudo su: 관리가 권한으로 들어간다. (나올때는 exi..

인텔리제이에 H2 DB 데이터베이스 넣기

데이터베이스 h2 mysql application.properties에 spring.h2.console.enabled=true spring.datasource.driverClassName=org.h2.Driver spring.datasource.url=jdbc:h2:file:./myselectdb;AUTO_SERVER=TRUE; spring.datasource.username=sa spring.datasource.password= spring.jpa.properties.hibernate.format_sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.generate-ddl=true logging.level.org.hibernate.SQL=debug log..

숙련3 - AOP, 예외처리, Transaction

Optional 1.8부터 적용 Null 값 처리 하기 위한 편의기능 많이 제공. @RestController : JSON 형태로 반환 @Autowired : Repository와 연동 @Secured 관리자 권한이 있는 사용자만 접근할 수 있도록 옵션을 줘서 처리 getAllApiUseTIme이라는 메소드에 일반 사용자는 접근하지 못하고 admin AOP (Aspect Oriented Programming, 관점지향 프로그래밍) 를 통해 부가기능을 모듈화 '핵심기능': 각 API 별 수행해야 할 비즈니스 로직 ex) 상품 키워드 검색, 관심상품 등록, 회원 가입, 관심상품에 폴더 추가, .... '부가기능': 핵심기능을 보조하는 기능 ex) 회원 패턴 분석을 위한 로그 기록, API 수행시간 저장 **..