![[Spring] 놀멍 서비스 개발 일지 - 로그 시스템 구축하기1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAx4QS%2FbtsL1svBegQ%2Fyx6yGFzsuOkbVa0WScgn4K%2Fimg.png)
이 글은 반려견 동반 가능 시설 공유 플랫폼 '놀멍'의 모니터링 서버를 구축하는 과정입니다.놀멍 서비스의 1차 MVP를 완성하고, 이를 배포하여 운영할 계획을 세웠습니다.서비스 운영에 있어 필요한 요소를 고민하던 중, 서버 모니터링의 필요성을 느꼈습니다. 놀멍 서비스 요구사항장애나 사고 발생 시 원인을 신속하게 파악하고 대응할 수 있는 시스템이 필요했습니다. 또한, 프론트엔드 개발자와의 협업 과정에서, 프론트엔드의 요청으로 로그를 확인할 때마다 서버의 도커에 접속하는 것은 매우 비효율 적이었습니다. 그렇기에 서비스의 요구사항은 다음과 같았습니다.사용자에게 만족을 제공하기 위해 시스템은 항상 안정적으로 운영되어야 하며, 이상 징후를 지속적으로 감시할 수 있어야 한다.시스템 이상 발생 시 원인 파악을 위한 ..
![[LG유플러스] 유레카 SW교육과정 1기 수료 후기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyMVrZ%2FbtsLP9iaRkI%2FmZ15nOq0sTNyxNnbuLHxrK%2Fimg.png)
멀티캠퍼스 선릉에서 7개월간 진행한 LG 유플러스 유레카 SW 교육 과정에 대한 후기를 작성해보려고 합니다. 유레카 SW 교육과정 선택 이유당시 유레카와 싸피 두 과정 모두 합격한 상태에서 많은 고민을 했습니다.싸피는 1년 과정으로 월 100만 원의 지원금을 제공하지만, 유레카는 7개월 과정에 월 30만 원의 지원금을 주었습니다.두 교육 과정 모두 멀티캠퍼스에서 진행되므로 강사님들은 동일한 소속으로, 모두 훌륭한 강사님들이라고 생각했습니다.둘 다 정말 좋은 교육 과정이지만, 저는 기간이 짧은 유레카를 선택하였습니다.빠르게 수료하여 취업하고 싶다는 마음이 컸던 것 같습니다.싸피는 금융권에서 가산점을 주는 회사가 많아 금융권을 목표로 하는 분들께 추천할 만하고, 유레카는 LG 유플러스의 서류와 코딩 테스트를..
![[컴퓨터 구조] 캐시 메모리 파헤치기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOSnvZ%2FbtsLLOZHWcP%2FjXHHtwZkjGAtr5Q24GVZlK%2Fimg.png)
캐시 메모리CPU가 프로그램을 실행하는 과정에서 메인 메모리에 접근하는 것은 시간이 오래 걸립니다.CPU가 레지스터에 접근하는 속도보다 느리기 때문에, 아무리 빠른 연산속도를 가진 CPU라도 메모리에 접근하는 속도가 느리면 그 효율이 떨어질 수 있습니다. 이러한 문제를 해결하기 위해 탄생한 저장장치가 캐시 메모리입니다.캐시 메모리는 CPU와 메인 메모리 사이에 위치한 SRAM 기반의 저장장치입니다. 캐시 메모리는 CPU가 사용할 일부 데이터를 미리 메모리에서 가져와 저장합니다. 이 덕분에 CPU는 메인 메모리까지 갈 필요 없이 캐시 메모리에 저장된 데이터를 활용할 수 있습니다.캐시 메모리는 코어와 가까운 순으로 L1, L2, L3 캐시로 나뉩니다.L1과 L2 캐시는 일반적으로 코어 내부에 위치하고, L3..
![[컴퓨터 구조] 메인 메모리(RAM) 파헤치기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdu2dSy%2FbtsLKFPP47O%2FC7bgvdY9LEYOyzfSBJ6701%2Fimg.png)
RAM(Random Access Memory)CPU는 보조기억장치(하드 디스크, SSD 등)에 저장된 프로그램을 곧장 가져와 실행할 수 없기 때문에 실행하려는 프로그램을 보조기억장치에서 RAM으로 복사해 가져와야 합니다. 그렇기 때문에 RAM의 크기는 컴퓨터 성능에 큰 영향을 끼칩니다. RAM의 크기가 작다면 CPU가 보조기억장치에서 데이터를 자주 가져와야 하므로 성능 저하가 발생할 수 있습니다.RAM은 이름에서 알 수 있듯이 임의 접근 방식(Random Access)으로, 저장된 요소에 순차적으로 접근할 필요 없이 임의의 위치에 곧장 접근이 가능합니다. 즉, 메모리를 위에서부터 아래로 순서대로 데이터를 접근하는 것이 아닌 주소를 통해 직접적으로 접근합니다.RAM은 휘발성 저장장치로, 컴퓨터 전원이 꺼지..
![[컴퓨터 구조] CPU 파헤치기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv3ynt%2FbtsLHNuEDYf%2F3XSuSD6qP6sGaApOHW9mZ1%2Fimg.png)
컴퓨터 공학을 전공하면서 지인들에게 자주 듣는 말 중 하나가 "노트북을 추천해줘"였습니다.제가 아는 것은 코어 수가 많으면 좋다는 것뿐...분명 전공 수업에서 각 개념이 무엇을 의미하는지 배웠지만, 시험이 끝나면서 기억의 저편으로...코어 수가 많으면 좋다는 것은 컴퓨터 공학을 전공하지 않는 사람들도 아는 정보였고, 이에 부족함을 느껴 컴퓨터 구조 중 CPU를 이번 기회에 정리해보고자 합니다. CPU(Central Processing Unit)CPU는 흔히 컴퓨터에서 사람의 두뇌에 비유됩니다.CPU는 컴퓨터에서 명령어를 실행하는 주체로서, 데이터와 명령어를 읽고 해석하며 실행하는 역할을 수행합니다. CPU의 주요 구성 요소는 아래와 같습니다.산술논리연산장치(ALU, Arithmetic and Logic ..
![[Spring] 놀멍 서비스 개발 일지 - 지도 화면 개발하기2(공간 인덱스 적용)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpUEC2%2FbtsLEYP05zm%2FpvfNw2gPZJ05KAotXOSOQK%2Fimg.jpg)
이 글은 반려견 동반 가능 시설 공유 플랫폼 '놀멍'의 메인 화면인 지도를 개발하는 과정입니다. 놀멍 서비스 개발 일지 - 지도 화면 개발하기1 이전 글에서 지도 화면을 개발한 내용을 공유했습니다.'놀멍' 서비스의 지도를 완성하였고, 실제 서비스 배포를 하였는데요!그리고 운영을 하면서 개발을 진행하던 도중 우연히 우테코 5기 폴로님의 글을 읽고 공간 인덱스를 알게 되었습니다.마침 개발 중인 지도 기능에도 공간 인덱스를 적용해 볼 수 있을 것 같아, 그 과정을 공유하고자 합니다.사실, 현재 지도 화면에서 장소를 조회하는 데 성능적인 큰 문제는 없었지만...그냥 해보고 싶었습니다.ㅇㅁㅇ 공간 인덱스(Spatial Index)란?공간 인덱스는 공간 데이터를 효율적으로 저장하고 검색하기 위한 데이터 구조입니다...
![[Spring] 놀멍 서비스 개발 일지 - 지도 화면 개발하기1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdXxNmO%2FbtsLFdZy87W%2Fy1kIh9w85MfAG9Ilqu4bYk%2Fimg.jpg)
이 글은 반려견 동반 가능 시설 공유 플랫폼 '놀멍'의 메인 화면인 지도를 개발하는 과정입니다. 위 앱은 네이버 지도로 지도에서 카페 카테고리를 선택하면 위 처럼 해당 화면 범위 내에 있는 카페에 대한 정보를 마커로 보여주고, 마커를 클릭하면 해당 카페에 대한 자세한 정보를 보여줍니다.저희 놀멍 서비스도 위와 같이 지도 화면과 반려견 동반 가능 시설에 대한 정보를 마커로 제공해야 했습니다.놀멍 지도의 요구사항지도를 통해 장소 검색을 진행할 수 있다.다양한 옵션(시설 종류, 견종 제한, 찜한 장소 등)을 통해 검색을 필터링할 수 있다. 초반에 마주한 문제저희 `놀멍`은 Naver 지도를 사용하기로 계획하였고, 장소에 대한 정보 역시 Naver에서 제공하는 API를 활용하여 구현하고자 했습니다. 하지만 Na..
![[Spring] Redis 테스트 환경 구축하기(Embedded Redis)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdVum8F%2FbtsLCFvrnea%2Fv6IzHV7DU5z7V8chqyUWHK%2Fimg.png)
현재 상황현재 진행하는 프로젝트에서 환자의 위도와 경도 값을 저장하기 위해 Redis를 사용하고 있습니다.프로젝트의 테스트 코드를 작성하는 과정에서 Redis를 사용하는 기능은 어떻게 테스트 코드를 작성해야 할지 고민이었습니다.현재 저희 서비스의 아키텍처는 NCP 서버에 Docker를 활용해 Redis를 운영하고 있습니다.처음에는 로컬 PC에서도 운영 서버와 동일한 환경을 Docker를 사용하여 구축하고, 테스트를 진행하는 방법을 고려했습니다.하지만, 이 방식은 테스트를 실행할 때마다 Docker Container를 생성해야 하며, 무엇보다 Github에서 프로젝트를 클론한 후 바로 테스트를 실행할 수 없는 문제가 있었습니다. 테스트 코드를 실행하기 위해서는 PC에 Redis 데몬을 설치해야 하는 문제가..