개발자(36)
-
AWS S3를 이용한 웹 페이지 호스팅 구축하기
Amazon Simple Storage Service란? 서비스를 런칭하게 되면 정말 무수한 데이터가 쏟아져 들어오게 됩니다. 이미지 저장만 해도 큰 용량을 차지할 수 있습니다. 자체 서버 구축(On-Premise)은 시간도 많이 걸릴 뿐더러 유지에도 상당한 노력이 들어가게 됩니다. 특히 데이터 백업, 데이터 분석, 데이터 배포등 정말 여러가지 신경 쓸 부분이 많은데 이것을 모두 자체 구현한다는 것은 사실 너무 힘든 일입니다. 그래서 Amazon에서 준비한 서비스가 바로 Amazon Simple Storage Service이죠. 수 많은 데이터가 들어오다 보면 서버가 다운되는 일은 흔하게 일어나죠. 서버 다운을 예측하기는 어렵기 때문에 그때 그때 개발자가 대처해야 한다면 이는 매우 비효율적입니다. 서비스..
2018.06.04 -
Django ORM 성능 튜닝
Django 뿐만 아니라 어떤 ORM을 사용하던지 성능 이슈는 발생할 수 밖에 없습니다. ORM은 데이터베이스의 테이블을 객체지향 프로그래밍에서 흔히 사용하는 객체(Class)처럼 사용할 수 있도록 해주는 기술입니다. 기존 쿼리문을 작성하여 데이터베이스를 조작하는 것을 넘어서서 더 효율적이고 가독성 및 유지 보수에 적합한 코드를 만들기 위해 나오게 되었습니다. 무엇보다도 데이터베이스 종류에 따라 백엔드 로직이 수시로 바뀌는 문제를 해결할 수 있습니다. 즉, MySQL을 사용하다가 검토에 의해 PostgreSQL로 바꾸게 된다고 하더라고 ORM에 정의되어 있는 Model들을 가지고 몇 분이 채 되지 않아 PostgreSQL에 테이블들을 생성할 수 있습니다. 물론, 비즈니스 로직은 거의 수정하지 않은 채 말..
2018.06.04 -
지속적 통합(Continuous-Intergration)과 Blue-Green 배포 전략이란?
CI(Continuous-Intergration)가 왜 필요할까? 수 많은 서비스들이 생겼다 사라지는 현대 사회에서 살아남기란 쉽지가 않습니다. 생존하기 위한 기본기 중 하나는 바로 고객들의 피드백을 최대한 빨리 종합하여 서비스에 반영하는 것입니다. 고객들의 피드백을 무시하고 살아남은 서비스는 매우 찾아보기 힘듭니다. 하지만 개발에 있어서 실제 운영중인 서비스에 수정을 재빨리 적용하는 것은 큰 부담이 따릅니다. 예를 들어, 개발 서버 환경에서 코드가 제대로 돌아가는 것을 확인했습니다. 그리고 버전관리 도구(e.g. Git)를 활용하여 운영중인 실서버에 적용을 했습니다. 하지만 갑자기 에러가 발생하고 서버가 죽어버렸습니다. 얼마나 끔찍한 상황인지는 서비스를 운영해 본 개발자만이 알 수 있을거라 생각합니다...
2018.06.01 -
Docker 명령어 RUN / CMD / Entry Point의 차이점에 대해서
RUN / CMD / Entry Point 차이점 RUN RUN 명령어를 사용하면 명령을 실행한 결과가 새로운 Layer로 저장됩니다. 그리고 이 Layer는 베이스 이미지에 추가됩니다. RUN 명령어는 주로 새로운 패키지를 설치하거나 소스를 받아서 빌드한 경우 사용됩니다. Docker는 Container를 실행할 때 Docker Image가 필요합니다. 이 Image는 이미 존재하는 다른 Docker Image나 배포된 OS를 기반으로 만들어집니다. 베이스 이미지에 Docker 명령어를 가지고 자신에게 맞는 환경을 하나 하나 얹어가는 것입니다. RUN 명령어를 사용하여 새로운 패키지가 설치하거나 새로운 명령을 실행하는 경우 베이스 이미지에 내용이 더해지는데 이것을 Layer가 더해진다고 표현합니다. L..
2018.05.31 -
Docker가 등장하게 된 배경에 대해서
과거 서버 개발은 상당히 까다로운 작업이라고 할 수 있었습니다. 대부분의 서비스가 클라이언트와 서버로 구성되어 있다는 사실에 반문을 제기할 사람은 많지 않을 것입니다. IOS나 Android 혹은 Web같은 클라이언트가 상품을 판매하는 상점이라면 서버는 판매할 상품을 만들고 배송하는 공장이라고 할 수 있습니다. 만약 공장이 갑자기 문을 닫는다면 어떻게 될까요? 아무리 이쁘게 상점을 꾸며놓는다한들 상품이 없는 상점에 고객들은 오지 않을 것입니다. 서버가 중요한 이유는 위의 예시에 나와있는 내용과 같은 맥락입니다. 데이터베이스로부터 알맞은 데이터를 효율적으로 가져다가 클라이언트에서 볼 수 있는 양식으로 가공한 뒤 보내주는 것이 서버의 역할입니다. 매우 중요합니다. 서버 개발이 되려면 다양한 프로그램, 다양한..
2018.05.30 -
반응형 웹 레이아웃 만들기 - 이미지 바꾸기
반응형이란 무엇인가? 웹은 사용자가 편하게 드나들 수 있는 플랫폼입니다. 스마트폰에서도, Window에서도, Mac에서도, 태블릿에서도 별다른 설치나 설정없이 브라우저만 있으면 접근할 수 있기 때문입니다. 이러한 장점을 가지고 있는 웹이지만 웹 페이지 혹은 웹 사이트를 개발하는 개발자 입장에서는 매우 난감한 상황이 벌어질 수 있습니다. 바로 우리가 사용하는 모니터, 스마트폰, 태블릿등 기기들의 화면 크기가 모두 다르다는 사실 때문이죠. 상상이 되시나요? 그 모든 기기들의 크기에 따라 웹 페이지가 다르게 보여야한다면 대체 얼마나 많은 코드가 존재해야 할까요? 반응형(Responsive)라는 말은 이런 문제를 극복하고자 나오게 된 개념입니다. 즉, 기기의 너비(width)와 높이(height)에 따라 웹 페..
2018.05.17