| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 항해99 사전스터디
- 자바스크립트 엔진 v8
- jwt
- 웹 크롤링
- chromatic error
- gql restapi 차이
- FP 특징
- next js
- 항해99 미니프로젝트
- 리액트 메모
- 리액트 메모이제이션
- 웹팩 기본개념
- 렌더링 최적화
- 코어자바스크립트
- 리액트 렌더링 최적화
- this
- 테스트 코드 툴 비교
- 실행컨텍스트
- 리액트
- 타입스크립트
- 리덕스
- js배열 알고리즘
- toggle-btn
- 알고리즘
- 항해99 부트캠프
- Js module
- 함수형 프로그래밍 특징
- v8 원리
- JS module system
- 항해99
- Today
- Total
목록분류 전체보기 (144)
Jaeilit
배경목요일 퇴근길에 서비스를 한번 들어가봤는데 페이지에서 로딩이 엄청 걸렸습니다. 별도의 모니터링 서비스가 없어서 핸드폰으로 직접 클라우드에 접속해서 봤습니다. CPU가 100%를 찍고 서버가 다운이 됐었습니다. 이런 적이 없는데.. 이상함을 느끼고 즉시 집으로 돌아와서 확인 해봤습니다. EC2 인스턴스 갑작스러운 다운 트러블슈팅: SSH 브루트포스 공격과 OOM Killer 분석🚨 문제 발생운영 중이던 EC2 인스턴스에 SSH 접속을 시도하는 과정에서 연결 실패 에러가 발생했습니다.Failed to connect to your instanceError establishing SSH connection to your instance. Try again later. 1년 이상 안정적으로 운영해온 프로덕션..
배경JS로만 되어있는 프로젝트를 담당하게 되었습니다. 언어 레벨에서는 프로젝트의 안전성을 생각해서 TS를 도입해야한다고 생각했고 제안을 했습니다. 팀 리더분께서는 처음에 부정적인 시선으로 보셨고, 그래도 제 의견을 조금 고려해주셔서 발표 세션을 준비하라고 하셨습니다.이 내용은 내부적으로 설득에 이용했던 내용을 회사 코드를 걷어내고 조금 수정한 수정 본입니다.런타임 오류 방지자바스크립트의 한계는 타입 관련 오류를 실행 전에 잡아낼 수 없다는 점입니다.자바스크립트는 동적 타입 언어로, 변수의 타입이 실행 시점(런타임)에 결정됩니다. 예를 들어, 숫자를 기대하는 함수에 문자열을 전달해도 코드를 실제로 실행하기 전까지는 이러한 오류를 발견할 수 없습니다.이런 한계를 극복하고자 자바스크립트의 슈퍼셋으로 타입스크립..
AWS S3를 활용한 프로필 이미지 업로드 구현하기배경프로필 사진 업로드 관련해서 이미지를 저장할 S3 버킷을 생성하고 업로드하려고 합니다. 처음에는 S3 버킷도 무료가 아니기 때문에 도입을 망설였습니다. 요금이 크진 않겠지만 전송량, 저장용량, 조회, 업로드 등 버킷에 대한 요금이 발생할 수 있기 때문입니다. 하지만 Next.js에서 next/image를 활용하려면 외부 이미지에 대한 remotePattern이나 domains를 next.config.js에서 설정해주어야 합니다. 외부 도메인에 대한 URL이 랜덤하다면 도메인을 특정할 수 없으니 설정할 수 없고, 이미지 최적화 기능을 사용할 수 없게 됩니다. 다른 방법으로 next/image를 사용하지 않고 일반 HTML img 태그로 렌더링해도 됩니다..
도입배경서버개발을 시작하면서 API를 처음 설계하다보니 설계방식에 문제가 있었습니다. RESTfull 하게 작성하려고 더 나은 방식을 찾을 때마다 설계를 수정하게 되었고 도화지 위에서 그림을 그렸다 지웠다하는 식의 일이 반복적으로 발생했고 그로인해 개발의 속도가 나지않고 계속 제자리 걸음을 하는 듯한 느낌이 들었습니다. 느리지만 단단하게.. 가려고 했습니다. 누구나 처음에는 서툴지만, 잘해보이기 위해 능숙한척 하는 것보다 포인트를 정확히 짚고 넘어가면서 익숙해지면 자연스레 능숙함은 따라온다는 내 삶의 철학이 녹아있었기 때문이었습니다. 하지만 이런 서버의 API의 잦은 변경의 부하들은 클라이언트에서 다 받게 되었습니다.API 엔드포인트 변경요청/응답 body, parameter 구조 변경타입 불일치로 인한..
막상 사이트를 배포하고 나니 비정상적인 트래픽으로 인한 과금이 걱정되기 시작했습니다. 특히 디도스(DDoS) 공격처럼 악의적인 사용자가 서버에 수많은 요청을 동시에 보내거나, 봇이 API를 과도하게 호출하는 경우 AWS 요금이 예상치 못하게 과금될 수 있습니다. 아직은 걱정할 단계가 아닐지 모르지만, 과금이 발생한 후에 대책을 세우는 것보다 미리 예산을 방어하는 것이 현명하다고 판단했습니다. 현재 사이트의 아키텍처로는 가비아에서 구입한 도메인의 DNS 설정을 AWS Route53에서 관리하고 루트 도메인은 Next.js로 작성된 프론트엔드를 배포한 Vercel과 연결했고, 백엔드 서버는 'api'라는 서브도메인을 만들어 EC2와 연결해두었습니다.Next.js는 보안상 기본적으로 HTTPS로 통신하도록 설..
문제사이트 배포 할 때 메타 데이터들을 작성하고 SEO를 위해서 robots와 sitemap을 작성하고 네이버 서치어드바이저와 구글 서치콘솔에 사이트를 등록해주었지만 생각보다 유입이 없고 검색에 대한 노출이 없고 노출이 없다보니 당연히 CTR 클릭수도 없었다.무엇이 문제일까?첫번째로는 트래픽적인 요소도 무시못할테니 일정시간이 지나면 자연스레 노출되고 유입이 생기면서 어느정도는 해결 될 줄 알았지만 지금 한달이 훨씬 지난 시점인데도 나아지지 않았다. 마케팅적인 활동이 부족했다면 인정하는 부분이다. 하지만 사이트는 아직 개발중인 단계이기 때문에 홍보를 생각하지 않았다. 근데 무슨 트래픽을 원하냐고 생각 할 수 있지만 하루에 100명 1000명을 바란 것이 아니라 유입경로라던지 노출 횟수 등 SEO 적용이 잘..
개인 프로젝트를 하던 중 전에 Vercel 배포할때는 까지 본적 없는 에러를 발견했고 이를 해결해 나간 과정을 설명하려고 합니다.먼저 히스토리를 위해서 도메인 구입과 연결한 것부터 이야기를 하려고 합니다. # 도메인 연결 부터프로젝트 코드보다 인프라에 더 집중을 할 때이다. 도메인 연결부터 이야기를 할 필요는 없지만 전체적인 과정을 설명을 하기 위해 먼저 이야기를 하려고한다. 도메인을 구입을 했는데 .co.kr .com 등 같은 최상위 도메인이 .shop 이나 가비아에서 500원에 파는 것들이 있기한데 지속적으로 운영을 할 목적으로 시작한 프로젝트라 나중에 혹시나 도메인을 이전해야한다거나 할 때 또 귀찮은 일을 해야하는게 2번 일하는 것 같아서 싫었고 또 다른 이유는 도메인을 이전하면 SEO에도 영향이 ..
git action 으로 cicd 를 하는 방법에 대해서 기술하려고 합니다. 본 내용은 nestjs 서버 배포의 내용을 하기 때문에 ec2에 배포를 하려고했고 프론트 배포는 spa 같은 경우엔 s3 에 정적으로 배포를 해도 되니 ec2 인스턴스를 사용할 일은 없을 것 같고, nextjs 를 사용한다면 버셀에서 워낙 잘되있기에 해당사항이 없을 수도 있습니다. 깃 액션에서 수행할 테스크는 로컬에서 하는 방식과 동일합니다.2. aws 로그인을 하고2. 도커 이미지를 빌드와 ecr에 푸쉬하고3. ec2 원격으로 접속한 뒤에4. 이미지를 불러와서 docker copose 해당 서비스를 해주시면 됩니다. 깃 액션에서도 동일하게 수행하면 됩니다. 1. aws 인증- name: Configure AWS credenti..