FE, 구조를 잘 모르니 협업시 조언을 못했다. 또한 해당 주차에서 많은 내용을 습득하지 못했다고 생각한다. 하지만 그 과정을 통해 API명세서의 중요한 점과 기본기를 다질 수 있는 좋은 시간이었다고 생각한다. 내일 시작하는 클론주차에서 최대한 Redis를 구현하여 서버 속도를 상승시켜 보겠다. !!!
S3 이미지 업로드 및 삭제
https://doing7.tistory.com/47
기억보단 기록을
Session, JWT Refresh Token db에 저장하면 결국 DB를 확인하는 건데 차이가 없지 않냐.?
IF) 만약 서버가 날라간다면
JWT는 로그인이 된다.(Access토큰키가 만료되지 않았다면...)
Session은 로그인이 안된다.(서버에서 저장하고 있기 때문)
소셜로그인 Oauth2 사용하기..
Response
기입한 주소 + ?code=${AUTHORIZE_CODE}
ObjectMapper (JSON 파싱할려고 쓴다)
JSON 컨텐츠를 Java 객체로 deserialization(역직렬화) 하거나 Java 객체를 JSON으로 serialization(직렬화) 할 때 사용하는 Jackson 라이브러리의 클래스 이다.
ObjectMapper를 이용하면 JSON을 Java 객체로 변환할 수 있고, 반대로 Java 객체를 JSON 객체로 serialization 할 수 있다.
https://velog.io/@zooneon/Java-ObjectMapper%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-JSON-%ED%8C%8C%EC%8B%B1%ED%95%98%EA%B8%B0
RestTemplate
REST API 호출이후 응답을 받을 때까지 기다리는 동기 방식
스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿
https://velog.io/@soosungp33/%EC%8A%A4%ED%94%84%EB%A7%81-RestTemplate-%EC%A0%95%EB%A6%AC%EC%9A%94%EC%B2%AD-%ED%95%A8
Oauth, 데이터 정규화,
스프링 기본에서 네이버 리다이렉트 확인해보기..
나는 kakaomember 엔티티를 한개더 만듬.
프론트엔드
카카오버튼으로 카카오서버에 인가토큰 Request
여기 url 부분을 수정
UUID.randomUUID().toString() 랜덤 숫자부여.
로그아웃에 대해서..
https://linkeverything.github.io/springboot/kakao-login-3/
기억보단 기록을
오늘 한일
1.게시글작성 api수정 >> 완료...
2.게시글작성 멤버컬룸추가 ( 연관관계 추가)
@AuthenticationPrincipal UserDetailsImpl userDetails
인증 정보를 옮길땐 @AuthenticationPrincipal 어노테이션 붙여아함..
3.회원가입시 명세서
-> 정규식 표현 수정해야함..
예시 작성법)
@Column(nullable = false, columnDefinition = "varbinary(128)")
private String memberId;
@ModelAttribute (매핑)
https://minchul-son.tistory.com/546
파일이랑 스트링내용을 같이 Request..
@Valid
인프런 강의 추천
https://www.inflearn.com/roadmaps/373
@CollectionTable 에 대해 검색해보자..
.. 한 게시글에 여러개의 이미지를 올릴때...
OneToMany(조인컬럼을 여기에 달아준다)
@CollectionTable 엔티티를 생성안하고
야자반 내용~
유지보수단계의 고도화.
라이트하우스 // 렌더링시간측정
제인리턴 // 리스폰스 측정
테스트코드를 무조건짜보자...
스프링테스트부트
우선은 서비스로직 테스트코드 짜보기..
짜는순서
dummyDate넣기 -> Mock
성공 및 실패에 대한 두가지
그래서 Null을 넣지말고
오버로딩을 사용(덮어쓰기)
String(a,b)
String(a)
즉 .orElse(null);을 쓰지말자!! 제거하자!!!
또는 CustomExcetion 만들자...
Transactional fileDelete 붙일 필요가 없음..
한 Trnascational 내에 존재하기 때문에~
자바 ddd
IAM 노출시 권한설정을 보면 막기때문에 (메일을 확인해보면 안다)
그냥 IAM 삭제하고 다시 만들자..
API설계할때 프론트엔드와 세세하게 ..
Request, Response를 정하고 ...
https://dev-pengun.tistory.com/entry/Spring-Boot-CORS-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
S3
게시글 처음 이미지 없고, 이후 수정할때 이미지를 넣을때 예외처리를 넣어야 된다. 전체 조회
SQL BENCH.. 차이~!!
Drop
Truncate
포트포워딩 확인하기..
Athuorization
*을 안먹힌다.
쿠키,세션 jwt 차이 알고가기
닉네임은 유효성검사에서 제외 ...
objectMetadata.setContentType(multipartFile.getContentType()); // 이게 머지? : 파일타입
InputStream inputStream = multipartFile.getInputStream(); // 이게 머지??? : 실제 데이터를 넣어준다~
URL 한글변환 디코딩 및 인코딩
https://solbel.tistory.com/1508
++++ <JPA영속성컨테이너>
스프링의 MVC구조 : MODEL(Entity), VIEW(Templates), CONTROLLER / 설계패턴
Entity 설계 잘하는 방법?
https://velog.io/@kangsan/%EC%A2%8B%EC%9D%80-Entity-%EB%A5%BC-%EC%84%A4%EA%B3%84%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EA%B0%9C%EB%85%90%EB%93%A4
S3 이미지 업로드 및 삭제
https://doing7.tistory.com/47
a반 여러분, API문서는 협업에서 가장 중요한 협업 문서 입니다.
따라서 꼭 프론트/백 함께 설계하시고, req/res 데이터는 예시로라도 자세히 적어두시길 바랍니다. 또한 변경 사항이 있을 때 항상 공유해서 원활한 소통으로 리스크를 줄여볼 수 있도록 하시면 개발에 집중할 수 있을 것 같습니다. :미소짓는_얼굴:
프론트/백 모두 새로운 기능 구현도 좋지만, 기존에 구현해둔 코드에 대해 꼭 서로 질문하고 리뷰해보시길 바랍니다. git 활용도 이번 프로젝트에서 연습하셔서 다음 클론 프로젝트 때 새로운 기능 구현해보는 시간을 확보해 보세요.
속도가 빠른 팀원은 다른 팀원들의 문제를 함께 고민하고 해결해도 좋겠습니다.
늘 말씀드리는 것처럼 서로 얘기하는게 정말 큰 도움이 됩니다.
현업에서도 수많은 개발 스터디가 있고, 유지되는 것이 증거이기도 하겠네요!
다들 SA를 잘 작성해주셔서 공통적으로 드리고 싶은 내용이 더 많아 메세지 남깁니다.
s3 이미지 이름 랜덤화..
jwt 토큰
https://bcp0109.tistory.com/301.
-+---------
REST
https://www.youtube.com/watch?v=RP_f5dMoHFc
클론코딩주차 시작
코드에서 코드가 똑같다면 좀 ㅎㅎ;;;;;;;
게시글의 카테고리를 @Enumerated 로 해보기
저장할때 EnumType.ORDINAL,STRING 에 따른 차이점 알아보기
-> 게시글 저장할때 카테고리로 숫자(0,1)로 넣어줘서 저장해보기, GAME,MUSIC처럼 Enum으로 넣어서 save해보기
카테고리, 남녀 , 중간에 변경불가 .. 그안에 있는 값만 사용할 수 있다.
db에
Ordinal는 id가 들어감
String으로 하면 앞의 String이 들어감..
회원 빙회원
게시글 전체게시글
Refresh 조금ㄷ ㅓ알아보자 ...
@Enumerated
email 및 nickname에 영어 소문자만 가능하게 하기... columnDefinition = "varbinary(128)"
로깅
스웨거
레디스
QueryDsl
검색
MVC 퍼시던트 계층, 비즈니스 계층
예외처리에 대한 객체 지향 EXCEPTION HANDLER
레디스, 웹소켓(실시간채팅)
++ 웹소켓 ,웻RTC 실시간 (화상회의)
클론코딩주차 시작
코드에서 코드가 똑같다면 좀 ㅎㅎ;;;;;;;
게시글의 카테고리를 @Enumerated 로 해보기
저장할때 EnumType.ORDINAL,STRING 에 따른 차이점 알아보기
-> 게시글 저장할때 카테고리로 숫자(0,1)로 넣어줘서 저장해보기, GAME,MUSIC처럼 Enum으로 넣어서 save해보기
카테고리, 남녀 , 중간에 변경불가 .. 그안에 있는 값만 사용할 수 있다.
db에
Ordinal는 id가 들어감
String으로 하면 앞의 String이 들어감..
회원 빙회원
게시글 전체게시글
Refresh 조금ㄷ ㅓ알아보자 ...
@Enumerated
email 및 nickname에 영어 소문자만 가능하게 하기... columnDefinition = "varbinary(128)"
검색
MVC 퍼시던트 계층, 비즈니스 계층
예외처리에 대한 객체 지향 EXCEPTION HANDLER
레디스, 웹소켓(실시간채팅)
++ 웹소켓 ,웻RTC 실시간 (화상회의)
git hub 협업하기
https://gmlwjd9405.github.io/2017/10/28/how-to-collaborate-on-GitHub-2.html
CI/CD
https://seosh817.tistory.com/104
Redis. aws 에서 어떻게 구성해야되는지 ..
서버2대를 두고 한쪽은 배포, 한쪽은 캐시서버로 놔둬서
실행한다면 글로벌캐시이며 프론트에서는 따로 작업이 필요없는거
추가적으로 DB를 한번만 확인해야하는데
DB조건을 수립하는 방법??
CRUDrepository
처음에는 db에서 리프레쉬 토큰을 저장하고 꺼낸다...
이후 재 로그인시 캐시에서 꺼내서 성능개선..
vmware workstation이란? 가상머신..
ex)
application-aws.properties만 사용하고 싶다면 활성화된 프로파일에서 \
aws만 넣으면 실행시키고 싶은 properties만 분리 가능
레디스 실행 추가!
redis-5.0.5$ redis-cli
ec2 에서 연결이 되지않는다면 properitese. 에서 localhost 서버 ip를 넣어보기..
properties.별로 나눠서 profile별로 db및 //
Spring boot서버에 1만개/sec의 Request를 요청하였을때? free-tier서버가 견딜수 있을까?
CPU 80% 이상일때 다운이 된다.
++오토스케일링
60%이상 일때 똑같은 서버 한개를 더 띄운다.
++ 무중단 배포
서버가 죽기전에 다른 서버를 살린다..
@SLF4J 란?