분류 전체보기 34

Spring Resolver, Json and ObjectMapper 내부에선 어떤 일들이 발생할까?

🍎 큰 양의 데이터를 한꺼번에 적재해본 적이 없어 다량의 데이터가 아닌 한 건의 데이터로 Flow를 잡은 후 큰 데이터를 처리하는 방법을 선택했습니다. 🍎 코드 작성 시 Domain을 우선적으로 생성하는 것이 아닌 Presentation 계층 먼저 작성하기 시작했습니다. ❓ 왜 Domain을 먼저 작성하지 않고 Presentation(Controller)부터 코드를 작성했나요? Controller 부터 작성한 이유는 행위를 먼저 결정하기 위함입니다. 여기서 이야기하는 행위는 객체가 갖는 메소드를 이야기하기보단 프로젝트에서 받은 요청이 수행되는 행위를 뜻합니다. 이를 통해 얻을 수 있는 장점은 데이터 중심적으로 생각하지 않게되고 유연하게 Domain의 상태(property)를 가져갈 수 있습니다. ⚠️ 문..

TIL 2023.04.03

Local 환경에서 프로젝트 인터넷 연결

🍎 공공데이터에서 얻은 데이터를 어떤 방식으로 핸들링해야 할지 고민을 했습니다. 🍎 데이터 처리를 고민하던 중 공공데이터에서 OpenAPI 형식으로 API 서버를 통해 데이터를 받을 수 있는 방법을 발견했습니다. ❓ 궁금증이 생겼습니다. 현재 로컬에서 개발하는데 어떻게 OpenApi에 데이터를 가져올 수 있는 건지? ❓ 인터넷에 프로젝트를 연결할 적이 없는데 어떤 방식으로 인터넷 연결이 되어 데이터를 요청할 수 있는 건지? 너무나도 당연하게 숨 쉬듯 인터넷을 사용하고 있어 개발 환경에서 인터넷을 어떤 방식으로 이용하고 있는지 알고 있지 못해 생긴 의문점이었습니다. 이전의 생각으론 WAS 서버를 개발하고 개발한 서버를 “배포”를 해야 인터넷 통신을 할 수 있다는 생각을 하고 있었는데 이런 생각이 틀리다는 ..

TIL 2023.04.03

개인 프로젝트 <내 주변에 수영장>, Project Setting

🍎 주변 가까이 있는 수영장을 사용자에게 보여주는 프로젝트를 진행합니다. 프로젝트는 Spring boot를 통해 생성했습니다. ❓ 왜 boot를 통해 프로젝트를 생성했나요? 스프링 부트가 초기 애플리케이션의 설정을 간편하게 처리해 주기 때문에 사용했습니다. 간단한 초기 설정 이외에도 자체적인 웹 서버를 내장하고 있어 빠르고 간편하게 배포를 진행할 수 있습니다. 또한, boot를 사용하면 독립적으로 실행 가능한 Jar 파일로 프로젝트를 빌드할 수 있어, 향후 클라우드 서비스 및 도커와 같은 가상화 환경에 빠르게 배포할 수 있습니다. 🍎 부트를 통해 빠르게 프로젝트 초기 설정을 마칠 수 있었습니다. 서비스를 제공하기 위해 데이터를 어디서 어떤 방식으로 가져와야 하는지 고민이 됐습니다. 🍎 사용자에게 제공할 ..

TIL 2023.04.03

Process와 Thread. 다다익프? 다다익쓰?

🍎 크롤링 애플리케이션을 개발하던 중 병렬 처리를 위해 Multi Process와 Multi Thread를 사용했습니다. 몇 개의 Process와 Thread를 사용해야 효율이 좋을지 고민이 생겼습니다. 고민을 해결하기 위해 Process와 Thread를 알아보고 사용 시 주의사항을 알아보는 블로그 글입니다.🍏 본격적으로 들어가기 전 Processd와 Thread에 관련해 가볍게 정리합니다.Process : Process는 실행 중인 프로그램의 인스턴스이며, 자신만의 독립적인 메모리 공간과 실행 컨텍스트를 갖습니다. 각각의 프로세스는 OS에 의해 별도의 프로세스 ID(PID)가 할당되며, 각각의 프로세스는 자신만의 실행 스레드를 가질 수 있습니다. 여러 프로세스는 서로 독립적이기 때문에 서로의 메모리..

Dev 2023.04.03