🥽 내가 구현한 기능MSA방식으로 변경되어 모놀리식으로 되어 있는 서비스를 모두 모듈화했고 하는 과정에 각 서비스를 로드밸런싱해주는 API Gateway를 제작해주었다. 또한 API Gateway에서 인가를 진행하게 되고 다른 서비스도 통합에서 분리로 적용하게 되어 Redis를 통해 global하게 사용되고 있는 데이터는 Redis를 통해 관리하게 제작했다.또한 장바구니의 기능 또한 Redis로 제작하게 되며 DB에서 빠지게 되었고 각 서비스 간의 요청에 Feign을 사용했다또한 MSA로 변경되면서 DB Lock을 걸어주어야 하는 서비스에 접근하여 해당 서비스에서 사용될 로직을 더욱 작성하여 동시성 문제를 해결 추가로 분산락을 사용하고자 했지만 분산락으로 충분한 상황이여서 이후 다시 구현 예정한개의 서..
항해99
🥽 내가 구현한 기능 항해는 프로젝트의 요구사항의 큰 줄기를 알려준다. 때문에 해당 요구사항을 기반으로 제작하게 된다. 우선 큰 줄기만 보자면 우리는 쇼핑몰을 구현한다. 많은 기능이 있겠지만 그중 필수요소인 로그인과 주문 그리고 사용자의 위시리스트로써 찜하는 기능 같은 것 같다 우선 그 기능을 기반으로 원하는 기능은 모두 구현이 완료된 상태이다. 테스트를 마친 상태로 따로 문제가 있던 기능이 없었다. 🥽 기술적 의사결정 로그아웃은 Redis를 많이 사용하지만 굳이 초반부터 후반 기능을 사용하고 싶지 않았다. 때문에 RefreshToken을 이용한 로그아웃을 구현했다. 데이터를 암호화하는 것은 가장 대중적으로 사용되는 AES를 사용했고 데이터의 암호화를 위해 만들어진 암호화 방식은 JPA의 Attribut..
💥 마지막 코테 벌써 마지막으로 진행된 코테는 의외로 이전에 공부한 내용에서 많이 나왔다. DP를 이용한 문제, 그리디적인 문제, 그리고 다익스트라를 이용한 문제까지 마지막 문제는 풀지 못했지만 상어이야기인것을 보니 아마 상어 문제를 더욱 열심히 풀었다면 풀수 있지 않을까 싶다. 근데 아직은 너무 경험이 적어서 바로바로 생각나지 않는다는 것이 너무 속상하다 물론 코테는 오늘로 종료되었지만 틈날때마다 혼자서 조금씩 이라도 푸는 연습을 해야겠다 💥 그리고 시작 이제 개인 프로젝트 시작이다. 이번 프로젝트는 난이도가 있을것이고 그걸 한달안에 완성해야한다는 것 때문에 더욱 걱정이 된다. 하지만 이것을 위해 지금까지 달려왔고 블로그를 보면 MSA에 대한 강의를 통해 정리해 놓은 것을 볼 수 있다. 나는 최선을 다..
💥 다양한 알고리즘 그리고 마지막 다양한 알고리즘으로 포진된 오늘의 문제는 역시 쉽지만은 않았다. 그래도 문제를 좀 더 다양하게 풀어보고 문제를 접하니 확실히 알고있는 개념이 많아지는 것 같았다. 그리디, 다익스트라, BFS, 구현 등등 문제의 알고리즘은 역시 나타나있었기 때문에 제출 할 수 있었고 역시 오늘도 알고리즘을 알지 못하면 쉽게 문제를 해결할 수 없겠구나 라는 생각을 하게 되었다. 💥 마지막날 내일이면 벌써 마지막 코테를 보고 발제를 하는 날이다. 드디어 개인 프로젝트에 들어가는 날이기에 더욱 기대인지 긴장인지 알 수 없는 날이 왔다. 하지만 그동안 MSA를 위해 준비했고 스터디를 진행했으니 우리는 잘 할 수 있을것이라고 믿는다. 각오를 하고 온 만큼 그만큼 열심히 해서 꼭 좋은 결과를 얻어나..
💥 DP와 문제의 이해 DynamicPrograming 의 약자인 DP는 같은 경우를 계속해서 문제를 풀어나가는것에 있어 발생하는 문제를 해결해주는 알고리즘이다 물론 굉장히 복잡하지만 이해를 한다면 확실히 너무 좋은 알고리즘이다. 하지만 문제는 문제를 보고 이것이 DP의 문제이다 라는 것을 단번에 확인하는 것이 쉽지 않다는 것이다. 매니저님에게 여쭤보니 그것은 문제의 이해도와 많은 학습량 즉, 문제를 많이 풀어보아야한다고 말씀하셨다 실제로 알고리즘을 문제를 보고 바로 떠올리는 것은 어려운 일이라고 말씀해주셨다. 떄문에 확실히 문제를 많이 풀어보는 것이 좋겠다 수학처럼 💥 팀스터디 비교적 쉬운 난이도였다 왜냐하면 문제의 알고리즘이 확실히 DP로 잡혀있었고 심지어 다른 문제는 그리디에 가까웠기 때문에 굳이 ..
💥 다익스트라 알고리즘 한번도 공부해보지 않은 알고리즘이였다. 때문에 굉장히 낯설고 어떻게 문제를 풀어야 할지 굉장히 난감했다. 알고리즘을 알고 있다면 그냥 하면 될텐데 아예 모르니까 다른 방식에 사로잡혀 쉬운 방식으로 가지를 못했다. 그리고 수학적인 생각을 하질 못해서 더욱 괴로운 것도 있었다... 💥 팀스터디 그리디한 문제가 즐비하게 나타나면서 이제 문제를 많이 풀어야 생기는 요령에 의한 문제가 급격하게 많아졌다. 때문에 멘토링의 진행 방향도 뭔가를 심도있게 얘기를 나눈다기보다 문제를 푸는 방식과 코드에서 어떻게 하면 좀 더 불필요한 회전을 조금이라도 덜 할까 라는 대화주제만 발생하게 된다. 구현...흠...
💥 계속된 시뮬레이션 나뿐만 아니라 다른 사람들도 시뮬레이션을 풀면서 조금씩 힘들어하는 것이 느껴진다. 그리고 이전에 진행했던 알고리즘에 대한 아쉬움이 계속해서 남는다. 아무래도 알고리즘을 좀 더 해보는 것도 나쁘지 않다고 느낀다. 💥 팀스터디 진행하는 방식을 조금 바꿔보았지만 전원 참여하기가 쉽지가 않았다 아무래도 스스로 문제를 풀어 보려는 시도가 있기에 그런것 같다. 문제도 그렇고 점점 사람들이 지쳐가는게 느껴져서 아쉽다
💥 구현의 어려움 기존에는 알고리즘을 이용해 문제를 풀기만 하면 되는 방식이였는데 이제 시뮬레이션과 구현문제가 주를 이뤘다 때문에 문제 하나하나의 시간이 굉장히 오래 걸리고 고민하는 시간도 굉장히 많이 길어졌다 💥 팀스터디 팀스터디의 방식이 조금 달라질것 같다 기존에는 문제를 다 풀고 만났는데 그렇게 하다보니 문제를 멍하니 보는 시간만 길어지는것 같다 그래서 방식을 조금 달리해서 문제의 이해와 풀이 방법을 조금 빠르게 생각해내려고 한다 1시간의 시간 제한을 두고 한문제를 풀고 다시 만나는 것이다. 그렇게 하면 코테를 대비하는 시간도 절약이 될 것 같고 좀 더 간단하고 빠르게 문제를 푸는 연습도 될 것 같다
💥 또다시 코테 주의 마지막 날인 화요일에 코테를 본다. 오늘도 역시 코테를 보았다 이번 주제는 저번주에 자주 다룬 내용으로 코테를 진행했고 이번에도 역시 결과는 뭐...비슷하닼ㅋㅋ 그래도 코테와는 별개로 문제를 푸는 습관을 많이 들여놓으니까 문제를 보는데 거부감이 훨씬 나아진것이 느껴진다 💥 DFS 와 이분탐색의 조합 오늘의 코테 중 4번이 가장 인상적이다. DFS와 이분탐색을 합친 문제라니 골드 2인 이유가 있다. 그러고보니 이제 그냥 문제를 주다보니까 티어를 많이 안보게되었다 예전에는 실버에서 계속 놀았기 때문에 골드는 꿈도 안꿨는데 이렇게 꼭 풀어야하는 문제로 줘버리니까 자연스럽게 많이 풀게되는거 같다 이건 좋은 현상인것 같아
💥 너비 우선 탐색과 깊이 우선 탐색 오늘은 DFS 와 BFS를 좀 더 본격적으로 풀어본 느낌이 났다. 기존에 관련 문제를 풀지 않아서 걱정을 많이 했던 만큼 역시 문제는 많이 어려웠다. 우선 이해도가 굉장히 낮은게 매우 아쉬웠다. 그래서 좀 더 문제의 속도보다 알고리즘의 이해도를 더 중요시하기 위해 문제를 몇 번이나 풀어보고 또 나아가 BFS가 아닌 다른 방법으로 푸는 방법을 생각해보기도 하면서 좀 더 이해도를 올렸다 💥 팀스터디 인접 행렬과 인접 리스트 평소에 문제를 풀떄는 배열을 사용해서 문제를 풀기 떄문에 인접 리스트가 너무 어색했다. 행렬은 눈으로 바로 보이는데 반해 인접리스트로 연결된 노드를 표현할때는 머릿속으로 그림을 그려놔야 하는 느낌이기 때문이다 그래도 시간복잡도의 차이가 어마어마해서 알..