본문 바로가기

분류 전체보기

(317)
# Tech/PostgreSQL 튜닝 [튜닝] 커서기반 페이지에서 임의의 정렬조건의 순번 계산하기 개요 커서기반 페이지네이션에서 임의의 정렬조건의 순번을 계산해야 하는 상황이 있을 수 있습니다. 다음 상황을 살펴보겠습니다. 커서로는 IDX가 쓰일것이고 어떠한 항목도 필터링하지 않았을 때 순번으로도 활용할 수 있지만, X가 작성한 게시글만 보기위해 필터조건을 건다면 IDX는 더이상 순번으로 사용할 수 없습니다. 이러한 상황에서 어떻게하면 효율적으로 SEQ를 계산할 수 있을까요? 🤔 실습 데이터 생성 -- 테이블 생성 CREATE TABLE TEST ( idx int4 primary key, userid int4, contents text ); -- 인덱스 생성 CREATE INDEX test_userid_idx ON TEST(userid, idx); -- 데이터 생성 INSERT INTO TEST SE..

2020. 5. 19. 20:47

# DevNote/AWS [ELB] 로드 밸런서를 사용하여 EC2에 HTTPS로 연결하기 개요 먼저 단언하자면 EC2 콘솔을 통해 SSL 인증서를 적용할 수 있는 방법은 없습니다. 특정 인스턴스에 SSL 인증서를 설치하기 위해서는 수동으로 설치하는 방법밖에 없죠. 그러나 이 방식은 인증서의 유효기간에 대한 고민이 함께 따라오기 때문에 적지않은 수고가 함께 동반됩니다. 😟 하지만 로드 밸런서를 함께 사용하면 인스턴스에 인증서를 설치하지 않고도 HTTPS연결을 할 수 있습니다. ACM을 통해 발급받은 인증서를 사용한다면 재발급 및 갱신까지 알아서 해주기 때문에 더욱 편리하죠. 백그라운드 이 마법같은 일은 로드 밸런서가 인증서를 가지고 있기 때문에 가능합니다. EC2에는 인증서가 설치되지 않아 로드 밸런서와 EC2 사이에 일반 연결이 수립되었지만 로드 밸런서는 인증서를 가지고 있기 때문에 사용자와..

2020. 5. 18. 21:38

# DevNote/AWS [ECS] 도커를 통해 ECS EC2에 배포하기 개요 Elastic Container Service는 컨테이너들의 헬스를 체크하고 일정수준 이상의 컨테이너들이 동작하도록 도와주는 서비스이며 쿠버네티스의 아마존 버전이라고 생각하면 얼추 맞습니다. 이번 포스팅에서는 Docker 이미지를 사용하여 EC2를 사용한 ECS에 배포해보겠습니다. 시작유형 아마존에서는 2가지 유형으로 ECS를 제공하고 있습니다. Fargate와 EC2가 바로 그것이죠. EC2 이 유형은 도커 컨테이너가 EC2 컨테이너 위에서 작동합니다. 우리가 구매한 EC2에 대해 일정 이상의 컨테이너가 돌아가도록 관리하는 방식으로 이루어집니다. 프리티어 사용자라면 1개의 t2 인스턴스는 무료로 사용할 수 있습니다. Fargate 이 유형은 Lambda와 매우 비슷합니다. 아마존이 가지고 있는 F..

2020. 5. 17. 19:58

# DevNote/AWS [CloudFront, Lambda@Edge] Next를 serverless하게 배포하기 NextJS Serverless Component 기존의 방식 (9.0 이전) 기존에는 Next를 구동하려면 AEC2같은 항상 실행중인 서버가 필요했습니다. 어떻게 하면 서버리스하게 만들 수 있을까? 라는 생각에서 serverless-nextjs-plugin같은 패키지들이 만들어지기도 했죠. 하지만 플러그인을 사용하는 방식은 번거롭고 람다 핸들러 스타일의 코드를 추가로 작성해야하는 문제점이 있습니다. // Lambda Handler Style... const compat = require("next-aws-lambda"); const page = require(".next/serverless/pages/somePage.js"); module.exports.render = (event, context, c..

2020. 5. 17. 16:05

# DevNote/AWS [Lambda] serverless와 typescript로 시작하는 Lambda AWS까지 배우기엔 너무 힘들어요 Lambda는 매력적인 서비스입니다. 실제 사용된 만큼만 과금되기 때문에 사용자가 없는 시간에는 요금이 절감되고. 아마존이 가진 pool에 배포된 code 넣어 실행하는 형태이기 때문에, 사용자가 급증해도 유연한 대처가 가능하기 때문이죠. 다만 Lambda 혼자서는 제 역할을 할 수 없는데, 실제 서비스를 제공하려면, Lambda만 설정해야 될 것이 아니라, Lambda Apllication, API Gateway와 같은 부가적인 설정도 이루어져야 합니다. 이걸 프로그래머가 혼자 다 설정해야 한다니... 코딩하는걸 더 좋아하는 사람에겐 생지옥이 따로 없습니다. 효과적인 대안이 어디 없을까요? serverless 이런 경우에는 serverless 프레임워크가 좋은 선택일 ..

2020. 5. 15. 15:07

# 블로그/프로젝트 [프로젝트] 티스토리에 컨트리뷰션 그래프를 달아보자 [Change Log] 2020-07-09 : 설치 설명서 개선, FQA 추가. 2020-05-14 : 최초 작성. 개요 작은 티스토리 플러그인 느낌의 프로젝트. 아래처럼 GitHub스럽게 Tistory Contribition을 보여준다. 😀 이 블로그의 메인화면에서 라이브로 볼 수 있고, 전체 코드는 깃허브에서 확인할 수 있다. 개발 과정 사용된 기술스택 프론트엔드 프론트엔드는 설명할 것이 별로 없다. 토대는 bachvtuan/Github-Contribution-Graph를 사용했지만, 이대로 사용하기엔 2% 부족한 느낌이 들어 🤔 몇 군데를 손본게 전부이다. 수정사항 : 박스에 경계선을 주고 헤더와 푸터 추가. 현재 사용중인 스킨에 잘 녹아들도록 반응형 지원. 데모 페이지와 블로그 메인화면을 좌우로 ..

2020. 5. 14. 16:51

# 미사용/Blog-Metadata post-metadata 2019-11-17:2 2019-12-05:4 2019-12-06:5 2019-12-07:4 2019-12-09:1 2019-12-11:1 2019-12-14:3 2019-12-15:4 2019-12-16:1 2019-12-17:1 2019-12-26:1 2020-01-19:1 2020-02-13:2 2020-02-14:1 2020-03-11:1 2020-03-14:1 2020-03-16:1 2020-03-17:1 2020-04-26:1 2020-05-13:1 2020-05-14:1 2020-05-15:1 2020-05-17:2 2020-05-18:1 2020-05-19:1 2020-06-07:1 2020-06-08:1 2020-06-13:1 2020-06-14:1 2020-06-18:1 2020-07-..

2020. 5. 13. 20:47

# Tech/ChromeExtension 크롬 익스텐션의 각종 개념들 개념 구글 크롬 익스텐션이란 크롬 브라우저를 조작할 수 있는 권한을 가진 막강한 프로그램을 의미합니다. HTML, JavaScript, CSS와 같은 웹 기술을 기반으로 두고있기 때문에, 프론트엔드를 다뤘던 경험이 있다면 쉽게 익힐 수 있습니다. 핵심 파일 익스텐션을 만드는데 필요한 핵심 파일들은 다음과 같습니다. 각각의 파일에 대해 짤막하게 설명하겠습니다. 📦 chrome-extension ┣ 📜 manifest.json ┣ 📜 icon.png ┣ 📜 popup.html ┗ 📜 background.js manifest.json 안드로이드의 AndroidManifest.xml와 매우 비슷합니다. 익스텐션의 각종 메타정보와 필요한 권한목록을 명시적으로 적어야 합니다. 만약, 권한목록에 없는 기능을 사용한다..

2020. 4. 26. 22:12