목록분류 전체보기 (89)
과거의 내가 미래의 나에게

플랫폼에 추가 요구사항이나 에러이슈가 들어오면 우리팀이 가장 먼저 이를 보고 어떻게 처리할 지 판단하여 각 팀에 뿌려준다. 이번 이슈는 사용자의 사용기록을 단순히 테이블로 쌓는 페이지에서, 1년이 지난 기록은 없어지게 해달라는 클라이언트에 요청이 있었다. 이 페이지는 DB에서 쌓인 데이터를 끌고만 오는 페이지라 DB에서 일정기간 지나면 데이터가 삭제되게끔 하는 처리만 하면 될 것 같아 백엔드팀에게 문의해보니 TTL을 설정만 하면 된다는 답변을 들었다.따라서, 오늘은 처리했던 TTL 설정법을 단순하게 기록용도로 적을 것이다! TTL이란?Time to Live의 약자로 데이터가 살아있는 시간을 뜻한다. MongoDB는 TTL이 자체적으로 포함되어있어서 설정이 쉬운 편인데, 이는 noSQL DB들의 특징인 듯..
사건의 발단은 nginx.conf의 지시문들을 하나하나 뜯어보며 공부하다가 access.log를 직접 보고 싶은 열망으로 인해 시작되었다. 하지만 내가 임시로 설치한 wsl의 우분투 안의 nginx는 아직 conf 파일만 들락날락하느라 서버의 요청을 받은 적이 없고 따라서 로그는 없을 것이었다.그래서 vpn을 통해 회사 서버에 접속하여 access.log를 까보려하는데 왠걸 너무 느린 것이다. access.log의 파일 크기가 너무 큰가 싶어서 파일 크기를 알 수 있는 명령어( ls -lh access.log)로 크기를 확인한 후 너무 크다면 로그 롤링이라는 것을 해봐야겠다! 했지만 출력된 것은 아래와 같았다.Irwxrwxrwx 1 root root 11 Nov 12 02:03 access.log —> ..
오늘은 nginx의 기본 설정을 할 수 있는 nginx.conf 파일에 대해서 뜯어보자. nginx.conf 란?nginx.conf 파일은 nginx의 주요 설정 파일로 전반적인 동작 방식을 제어한다. nginx를 설치하고 아무것도 건들지 않는 것을 기반으로 하면 보통 nginx.conf 파일은 "/etc/nginx/nginx.conf nginx" 이 경로에 위치한다. 구성은 블록 지시문과 단순 지시문으로 이루어져있는데, 단순 지시문은 공백으로 구분된 이름과 매개변수로 구성되어있고 세미콜론으로 끝난다. 블록 지시문은 세미콜론 대신 중관로로 둘러쌓인 추가 지시문 모듬으로 끝난다. 이렇게 중괄호 안에 다른 지시문들을 가질 수 있는 블록 지시문을 context라고도 한다. context에 둘러쌓이지 않은..
6월에 웹 서버에 대한 정의와 Nginx가 무엇인지 살펴보고 멈췄었는데...오늘은 그것에 이어서 Nginx를 직접 설치해보고 기본 구성정도만 알아보려한다.웹 서버는 일반적으로 백엔드 직군이나 데브옵스를 다루는 개발자가 많이들 하지만... 웹 서버는 결국 브라우저와 서버를 이어주는 통로와도 같기에 프론트 개발자도 웹 서버 관련해서 알아둬야 할 부분이라 생각했다. 꾸준히 공부해서 회사에서 nginx를 설계하는 역할을 가져가봐야지! Nginx 설치하기1. 패키지 업데이트sudo apt updatesudo apt upgrade설치하려보니 다들 Nginx 설치 전에 위와 같은 코드를 꼭 쓰던데, 우분투와 같은 데비안 계열 리눅스 배포판에서는 무언가를 설치하기 전에 패키지(운영체제 전체에서 필요로 하는 모든 ..

Blob 객체를 사용하는 경우가 꽤 되는데 대충 큰 데이터를 다룰 때 쓴다! 정도는 알지만 명확하게 파악하진 못하고 있어서 이번 기회에 학습해본다. Blob이란?Blob은 Binary Large Object의 약자로, 문자 그대도 커다란 바이너리 객체라는 의미이다. blob이라는 영어 단어는 덩어리라는 뜻을 가지고 있기도 해서 텍스트나 정수같이 특정 포맷을 가진 데이터 유형과 달리 덩어리 자체를 저장한다라는 느낌으로도 볼 수 있을 것 같다.과거에는 정수나 텍스트같이 특성이 뚜렷한 데이터만 저장하면 되었지만 이미지, 비디오 등 텍스트로만 처리할 수 없는 크고 다양한 데이터들이 등장하기 시작하였고 이를 처리하기 위해서 Blob 타입이 도입되었다.Blob은 이러한 대용량의 이진 데이터를 웹브라우저나 JS에서 ..
통으로 짜는 코드보다는 모듈화를 통해 쪼개쪼개어 부품을 준비해두고 이를 조립하는 코드는 보기도 편하고 유지보수하기도 편하다. 하지만 코드는 분해되어도 이벤트와 데이터는 공유되어야하기 마련인데, 보통은 컴포넌트끼리 결합시켜서 이를 사용하고 관리하게 된다. 컴포넌트가 이렇게 결합된 형태가 되어버리면 결국 컴포넌트를 쪼갠 의미가 없게 된다.그래서 컴포넌트가 모듈화의 장점을 유지하면서도 이벤트와 데이터는 컴포넌트들이 공유하고 전달할 수 있는 수단이 여러가지가 나오는데 그 중에 오늘 이야기할 것은 상태 관리 라이브러리와 이벤트 버스이다.프로젝트를 하면서 위와 같은 경우가 자주 나오는데, 그 때 그 때 생각나는 것을 사용하는 수준이었다. 그러다 둘의 특징을 명확히하여 구분해서 일관적이게 사용할 수 있으면 좋겠다라는..
오늘은 간단하게 openLayers(이하 ol) 지도를 생성해보고 마무리할 것이다. 사실 투영도 변경하는 작업까지 서술하고 싶었는데 난황이라 아직 정리하고 자시고다ㅠ 좀 더 완벽히 이해한 다음 작성해보겠다. ol 생성하기quick start를 따라서 생성할 것이다. 14버젼 이상의 node와 git이 필요하다.// 설치npm create ol-app 폴더명// 실행npm start 위와 같이 npm으로 실행하는 것이 가장 간단한 방법이다. ol과 실행할 개발 서버를 설치하고 index.html, main.js, style.css파일이 기본적으로 세팅된다. npm start로 웹 서버를 실행하여 바로 화면에서 볼 수 있다. main.js의 구성import './style.css';import {Map, ..

플랫폼에는 지도가 존재하는데 이 지도 소스가 아주 기깔나다. 그 때 그 때 필요할때마다 쓰다가 어쩔 때는 범용적으로 쓰겠다며 뭔가 엄청 복잡하게 분리해놓았지만 그에 대한 문서는 하나도 없어서 그 누구도 원리를 알 수 없고 또 그 소스 위에다가 당장 기능은 구현해야하니 또 덕지덕지 붙이는 등... 너덜너덜한 지도 컴포넌트가 바로 우리의 것이다. 지도가 내게 있어서 어려운 파트다보니 항상 있는 기능만 어찌어찌 쓰고만 있었는데 이제 더이상 외면 할 수는 없을 것 같아 공부를 시작해보려 한다. 우리는 오픈레이어즈를 기반으로 사용하고 있으며, 오픈레이어즈의 기본 지도인 OSM과 카카오지도를 사용하고 있다. 타일만 외부 지도를 사용하며 기능 구현은 전부 오픈레이어즈를 활용하고 있는 상태이다.본 글은 학습한 것을 정..