2022_04_16 SIL(항해 42일차)
1. 회고
6주차 미니프로젝트가 무튼 끝이났다.. 정말 쉽지않았다.... 일단 처음 프론트와 백이 나뉘어 작업을 한 결과물을 조인해서 서비스로 배포하는 과정을 진행하면서 상당히 어려움을 겪었다. 결국 원하는 결과물을 얻진 못했지만, 스스로 배우고 성장을 할 수 있는 기회가 되었던 한 주를 보냈다고 생각한다.
미니프로젝트 주차를 진행하면서 현재 내가 부족한 점에 대해서 정리하고, 클론코딩 잘 마무리하고 실전을 위해 열심히 달려야겠다.
나는 지금 뭐 전체적으로 부족하지만 특히 2가지 부분이 가장 부족하다고 생각한다.
- JPA 연관관계를 통한 Entity 설계
- 스프링의 3계층 플로우
아직까지도 Entity 설계가 많이 어렵다.. 정확하게는 테이블간의 연관관계를 생각하면서 설계하는 것이 어려웁다.... 그래서 미루고 미루다가 드디어 김영한님의 inflearn JPA 강의를 샀다..!!!! 이제 정말 실전 프로젝트까지 열심히 달려야겠다!!
아 그리고 나에게 이번주에 큰 이슈가 생겼다.. 인스타그램을 클론하여 구현하게 되었고 나는 게시글 CRUD 와 이미지 업로드부분을 맡게 되어서 이미지를 업로드 하는 부분을 구현하기 위해 s3 버킷을 만들어서 진행하고 있었다. 그런데 s3 버킷을 생성하기 위해서는 AWS 에서 발급해주는 accessKey 와 SecretKey가 필요한데, 해킹의 위험성이 있기 때문에 이 두가지의 키를 EntelliJ에서 gitignore 를 통해 보안 처리를 해주어야한다. 나는 분명 보안처리를 했고 협업을 위해서 원격 git 저장소에 푸쉬를 했는데, 팀원분들과 병합하는 과정에서 이 보안설정 부분이 날아가서, 나의 퍼스널 키 두가지가 그대로 인터넷 상에 노출 되었고, 그 잠깐 사이에 탈취되어서 약 해외 17개 지역에서 인스턴스가 실행되고 있던 것이다. 이 상황을 깨닫고 멘탈이 털려서 우왕좌왕하다가 일단 AWS 에서 실행되고 있는 리소스는 다 종료시키고 고객센터에 문의까지 남기게 되었다. 그러나 나의 짧은 영어실력으로 고객센터와 통화하는 과정이 원활하지 않았고 결국 월요일에 AWS 안에 있는 한국 부서로 이관하여 답하여주기로 했다. 일단 급한 불은 껐다.. 이번 기회를 통해서 여러 사례를 보았고 어떤 사람은 $ 10,000 이상의 금액이 인보이스로 찍혀있었다는 것을 보고 정말 보안이 중요한다는 것을 다시금 깨닫게 되었다.
진짜 보안은 중요해!!!!!
우울한 이야기는 일단 각설하고, 드디어 아기다리고기다리던 대망의 클론주차가 되었다! 이번에도 너무 훌륭하신 스프링 팀원분들을 만나서 22. 04. 15 현재 시각 02시 15분 우리는 초기 설정한 스코프를 다 구현해서 배포까지 완료했고, 이제부터는 추가 기능을 구현할 예정이다. 프론트분들은 현재 뷰는 대부분 다 구현하셨고 이제 기능 구현만 하시면 될 것 같다고 해주셨다. 뷰를 구현하시는 속도가 진짜 빠르셔 🫣 🫣
현재 서버단에서 구현한 기능을 정리하면 다음과 같다.
- 게시글 CRUD
- 좋아요(좋아요 취소 및 카운팅)
- 이미지 업로드
- 댓글 기능 (수정/삭제)
- 로그인/ 회원가입
클론주차에도 CRUD 기능을 중심으로 구현해서 뭐 똑같은 내용 그대로 해서 빨리 끝나는거라고 생각했지만, 처음 주특기 시작할 때를 생각해보면 정말 장족의 발전을 이루어냈다고 생각할 수 있다! 항상 초심을 잊지말고 정진하자구👻
서비스 배포 전까지 서버단에서 목표하고 있는 기능구현은 우선 웹소켓 통신을 이용한 DM 기능과 팔로잉 기능을 남겨두고 있다. 아직 본격적으로 시작하지 않아서 어느정도로 어려울지 가늠할 수 잆지만, 설렌다 설레 🙀
이제 진짜 마지막!! 실전프로젝트만 남은 만큼, 남은 기간 잘 활용하여 좀 더 요망지게😉 타임테이블 세워서 실전을 위해 빌드업해야겠다고 생각한다.
2. CS 스터디
https://taehyeonkim.notion.site/Transaction-8009423d5b0245939d2cda7252aade5e
Transaction
Transaction 이란?
taehyeonkim.notion.site