🌠 @Schduling Java 에서 스케쥴링을 구현하는 방법 중 가장 일반적인 방법은 Spring Framework의 @Scheduling 어노테이션을 사용해서 일정한 시간 혹은 간격으로 또는 특정 시간에 코드가 실행되도록 설정이 가능하다 이를 사용하면 간단한 방법으로 메서드를 주기적으로 실행할 수 있는것이다. 🌠 @Scheduling 사용방법 1. ApplicationClass 에 @EnableScheduling 추가 @EnableScheduling @SpringBootApplication public class HomauraApplication { public static void main(String[] args) { SpringApplication.run(HomauraApplication.cla..
📢 오류 사항 Ignoring exception, response committed already: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError) Resolved [org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError)] 💭 이유 스택 오버 플로우의 발생 원인은 JPA의 연관관계에 의한 상황이였다. JPA는 기본적으로 fetch 정책을 defaul..
💥 마지막 코테 벌써 마지막으로 진행된 코테는 의외로 이전에 공부한 내용에서 많이 나왔다. DP를 이용한 문제, 그리디적인 문제, 그리고 다익스트라를 이용한 문제까지 마지막 문제는 풀지 못했지만 상어이야기인것을 보니 아마 상어 문제를 더욱 열심히 풀었다면 풀수 있지 않을까 싶다. 근데 아직은 너무 경험이 적어서 바로바로 생각나지 않는다는 것이 너무 속상하다 물론 코테는 오늘로 종료되었지만 틈날때마다 혼자서 조금씩 이라도 푸는 연습을 해야겠다 💥 그리고 시작 이제 개인 프로젝트 시작이다. 이번 프로젝트는 난이도가 있을것이고 그걸 한달안에 완성해야한다는 것 때문에 더욱 걱정이 된다. 하지만 이것을 위해 지금까지 달려왔고 블로그를 보면 MSA에 대한 강의를 통해 정리해 놓은 것을 볼 수 있다. 나는 최선을 다..
🌿 가상화 가상화란? 물리적인 컴퓨터 리소스를 다른 시스템이나 애플리케이션에서 사용할 수 있도록 제공한다 ♪ 하이퍼바이저 (VMM - virtual Machine Manager) 가상화를 하기 위해 필요한 매니저를 지칭한다. 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼을 뜻한다 type 1 - Native or Bare-metal type 2 = Hosted 🌿 컨테이너 가상화 OS Virtualization ( OS 가상화 ) Host OS 위에 Guest OS 전체를 가상화한다 VMWare, VirtualBox 자유도가 높으나 시스템에 부하가 많고 느려진다 Container Virtualization ( 컨테이너 가상화 ) Host OS 가 가진 리소스를 적게 사용하며, 필요한 프로세스를 실..
💥 다양한 알고리즘 그리고 마지막 다양한 알고리즘으로 포진된 오늘의 문제는 역시 쉽지만은 않았다. 그래도 문제를 좀 더 다양하게 풀어보고 문제를 접하니 확실히 알고있는 개념이 많아지는 것 같았다. 그리디, 다익스트라, BFS, 구현 등등 문제의 알고리즘은 역시 나타나있었기 때문에 제출 할 수 있었고 역시 오늘도 알고리즘을 알지 못하면 쉽게 문제를 해결할 수 없겠구나 라는 생각을 하게 되었다. 💥 마지막날 내일이면 벌써 마지막 코테를 보고 발제를 하는 날이다. 드디어 개인 프로젝트에 들어가는 날이기에 더욱 기대인지 긴장인지 알 수 없는 날이 왔다. 하지만 그동안 MSA를 위해 준비했고 스터디를 진행했으니 우리는 잘 할 수 있을것이라고 믿는다. 각오를 하고 온 만큼 그만큼 열심히 해서 꼭 좋은 결과를 얻어나..
💥 DP와 문제의 이해 DynamicPrograming 의 약자인 DP는 같은 경우를 계속해서 문제를 풀어나가는것에 있어 발생하는 문제를 해결해주는 알고리즘이다 물론 굉장히 복잡하지만 이해를 한다면 확실히 너무 좋은 알고리즘이다. 하지만 문제는 문제를 보고 이것이 DP의 문제이다 라는 것을 단번에 확인하는 것이 쉽지 않다는 것이다. 매니저님에게 여쭤보니 그것은 문제의 이해도와 많은 학습량 즉, 문제를 많이 풀어보아야한다고 말씀하셨다 실제로 알고리즘을 문제를 보고 바로 떠올리는 것은 어려운 일이라고 말씀해주셨다. 떄문에 확실히 문제를 많이 풀어보는 것이 좋겠다 수학처럼 💥 팀스터디 비교적 쉬운 난이도였다 왜냐하면 문제의 알고리즘이 확실히 DP로 잡혀있었고 심지어 다른 문제는 그리디에 가까웠기 때문에 굳이 ..
💥 다익스트라 알고리즘 한번도 공부해보지 않은 알고리즘이였다. 때문에 굉장히 낯설고 어떻게 문제를 풀어야 할지 굉장히 난감했다. 알고리즘을 알고 있다면 그냥 하면 될텐데 아예 모르니까 다른 방식에 사로잡혀 쉬운 방식으로 가지를 못했다. 그리고 수학적인 생각을 하질 못해서 더욱 괴로운 것도 있었다... 💥 팀스터디 그리디한 문제가 즐비하게 나타나면서 이제 문제를 많이 풀어야 생기는 요령에 의한 문제가 급격하게 많아졌다. 때문에 멘토링의 진행 방향도 뭔가를 심도있게 얘기를 나눈다기보다 문제를 푸는 방식과 코드에서 어떻게 하면 좀 더 불필요한 회전을 조금이라도 덜 할까 라는 대화주제만 발생하게 된다. 구현...흠...
🍂 들어가기에 앞서 micrometer와 metric 들어가기에 앞서 마이크로미터와 메트릭이 무엇인지 알아보자 밑에 블로그에 가볍게 정리해두었다. https://latewalk.tistory.com/220 👨👧👦 micrometer 와 metric 🌲 Micrometer 서비스를 운영할 때 어플리케이션은 수많은 지표들을 확인해야한다. 이런것을 확인하기 위해 모니터링을 하게 되는데 우리가 실제로 정리되어 있는 내용을 화면(대시보드)를 통해 latewalk.tistory.com 🍂 Micrometer 구현 라이브러리 추가 micrometer-registry-prometheus 의존성을 추가해준다 이는 ApiGateway, userservice, orderservice 모두 추가해주어야 한다 Metrics..
🌲 Micrometer 서비스를 운영할 때 어플리케이션은 수많은 지표들을 확인해야한다. 이런것을 확인하기 위해 모니터링을 하게 되는데 우리가 실제로 정리되어 있는 내용을 화면(대시보드)를 통해 보기 위해 다양한 모니터링 툴을 사용한다. 또한 특정 모니터링을 사용할땐 해당 모니터링 툴에 맞는 포맷에 맞추어 측정하고 전달하는 것이 필요하다. 하지만 우리가 특정 모니터링 툴을 사용하다가 툴이 변경되면 코드를 전체적으로 변경해야하는 문제가 발생한다. 이 문제를 해결해주는 것이 바로 마이크로미터(메트릭 퍼사드)라고 한다 메트릭 퍼사드라고도 불리는 마이크로미터는 어플리케이션의 메트릭(측정지표)을 마이크로미터가 정한 표준 방법으로 모아 제공한다. 즉, 추상화를 통해 구현체를 쉽게 갈아끼울수 있도록 해둔다. 스프링 부..
💥 계속된 시뮬레이션 나뿐만 아니라 다른 사람들도 시뮬레이션을 풀면서 조금씩 힘들어하는 것이 느껴진다. 그리고 이전에 진행했던 알고리즘에 대한 아쉬움이 계속해서 남는다. 아무래도 알고리즘을 좀 더 해보는 것도 나쁘지 않다고 느낀다. 💥 팀스터디 진행하는 방식을 조금 바꿔보았지만 전원 참여하기가 쉽지가 않았다 아무래도 스스로 문제를 풀어 보려는 시도가 있기에 그런것 같다. 문제도 그렇고 점점 사람들이 지쳐가는게 느껴져서 아쉽다