대파양파애비
'Programming' 카테고리의 글 목록

Backend dev?

Programming/Book

[책 리뷰] 객체지향의 사실과 오해

얼마 전, 약 2년간 다녔던 회사를 퇴사했다. 퇴사 후 한두 달 정도는 아예 코드를 쳐다보지 않고 푹 쉬었다. 이직을 바로 할까 고민하다가, 실업급여를 받을 수 있는 기회도 생겨서 이번 기회에 부족한 부분을 채우기로 했다. 무작정 코드를 작성하기보다는, 내 코드의 구조를 고민하다가 객체지향에 대해 좀 더 깊이 있게 알고, 코드에 적용해보고 싶어졌다.  그러던 중 조영호 저자의 "객체지향의 사실과 오해" 와 "오브젝트" 라는 책을 알게 되었다. 찾아보니 둘다 객체지향 관련 책이지만  "오브젝트"는 실질적인 구현에 관한 코드 위주의 책이고, "객체지향의 사실과 오해"는 제목 그대로 객체지향의 개념과, 사람들이 오해하는 포인트를 잡아서 설명하는 설명해주는 책이다.  나는 CS지식이 탄탄하지 않아서 평소 코딩을..

Programming/AWS

[AWS] 서버 상태 실시간 모니터링: CloudWatch를 이용한 Nginx 액세스 로그 분석 및 대시보드 구축하기

AWS에서 서비스를 운영하다 보면, 서버의 상태를 실시간으로 파악하는 것이 얼마나 중요한지 잘 알게 될 것이다. 특히 웹 서버인 NGINX에서 발생하는 액세스 로그를 분석하고 모니터링하는 것은, 서비스의 성능을 유지하고 사용자 경험을 개선하는 데 필수적이다. 그런데 많은 사람들이 이런 중요한 데이터를 어떻게 효과적으로 수집하고 분석할 수 있는지에 대해 궁금해 하는데 여기서 AWS의 CloudWatch Logs가 빛을 발한다. CloudWatch Logs는 로그 데이터를 실시간으로 수집하고, 저장하며, 접근할 수 있게 해주는 서비스이다. 내가 서비스중인 앱에 최근에 유저가 5배 가량 확 증가하면서 사용자 경험을 개선하고, 서비스를 더욱 최적화하기 위해서 구축하기로 했다. 이제 AWS의 NGINX 액세스 로..

Programming/AWS

[AWS] CloudFront + ACM을 이용한 https 리다이렉팅 (Route53,S3)

직전에 Route53 + S3로 정적 웹 호스팅하는 방법에 대해 포스팅을 했었다. https://ilikezzi.tistory.com/53 [AWS] Route53 도메인 구매 및 S3 웹 호스팅 얼마전에 해커톤 멘토링을 다녀와서 서버설계와 DB설계쪽에 부족함을 느껴서 주변에 프론트엔드 1명, AI 1명, 디자이너 1명을 섭외해서 팀프로젝트를 하기로했다. 주제선정과 기능선정이 끝나서 ilikezzi.tistory.com 해당 포스팅과 이어지는 내용이니 먼저 보고와서, 이 포스팅을 봐주면 좋을 것 같다. 이전에 Route53 + S3 를 이용해서 정적 웹 호스팅을 해서 http 까지 완료했다. 이번에는 CloudFront + ACM 을 이용해서 https로 리다이렉팅 해보려고 한다. 우선 왜 이 두가지 서..

Programming/AWS

[AWS] Route53 도메인 구매 및 S3 웹 호스팅

얼마전에 해커톤 멘토링을 다녀와서 서버설계와 DB설계쪽에 부족함을 느껴서 주변에 프론트엔드 1명, AI 1명, 디자이너 1명을 섭외해서 팀프로젝트를 하기로했다. 주제선정과 기능선정이 끝나서 이제 각자 맡은일을 해야하는데 나는 기획, 서버, DB, 백엔드 파트를 혼자서 전부 하기로했다. 모바일 웹/앱 서비스로 진행하기로 해서 우선 프로젝트 도메인이 필요했다. 찾아보니 시중에 도메인 판매하는 사이트도 많았지만, 회사 테크니컬 리더님께서 역량 향상 명목으로 회사 AWS계정을 사용하라고 하셨다! 그래서 한치의 고민도 없이 AWS로 접속했다. Route 53 서비스를 검색 후 들어가서 등록된 도메인으로 들어가서, "도메인 등록"을 누르자. 그리고 사용하고 싶은 도메인주소를 검색하면 .com , .io , .net..

Programming/AWS

[AWS] 국내 1호 AWS 굿즈 개봉기! (+ 개발진스)

오늘은 처음으로 개발 내용 외에 포스팅을 해보려한다. 얼마전에 SAA-C03 합격후기, 합격요약 포스팅을 올렸었는데, 혹시나 필요한 사람이 있지않을까 해서 카카오톡에 AWS Study하는 오픈채팅방이 있어서 포스팅 내용을 공유했었다. 예상외로 반응이 핫해서 고맙다는 피드백을 많이 받고 블로그 유입도 500명이 넘었다! 그러고 몇일이 지나서 아래 사진처럼 나를 찾았다. ......! 따로 갠톡을 해보니 AWS 직원분이셨고 AWS 관련 자격증 준비하는 대학생들에게 공유를 해도 될지 여쭤보셨다. 한명이라도 누군가한테 도움이 되고 싶었는데 이렇게 까지 해주시니 너무 감사한 마음뿐이였다. 보내 주신다는 굿즈도 아직 국내에 제공된 적 없는 첫 굿즈였다!! 시간이 지나 사무실로 굿즈가 도착했다!!! 구성이 너무 알차..

Programming/AWS

[AWS] SAA-C03 합격후기, 핵심요약 정리 (AWS Certified Solutions Architect - Associate)

무려 한 달 만에 포스팅이다... 때는 3달전 AWS에 수많은 서비스 중에서 EC2, S3, Lambda 같은 기본적인 서비스 밖에 다룰 줄 몰랐었다. 하지만 점점 개발경력이 쌓여가면서 설계 쪽도 조금씩 맡아서 하게 되고, 점차 보안 쪽도 고민을 하게 되었다. 그래서 막연히 AWS공부를 하기보다, 이참에 자격증취득을 목표로 삼고 스터디를 하면 좋을 것 같았다. 자격증 종류에 대해 알아보다가 AWS Certified Solutions Architect - Associate SAA-C03로 정했다! https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/ SAA강의 중에서 꽤나 유명한 Udemy강의로 선택했다. 할인받아서 1..

Programming/협업

[Typescript] Eslint로 저장 시 사용하지 않는 import 제거

바쁘게 개발을 하다보니 코드상에 사용하지 않는 import들이 너무나 쌓여버렸다... 사진 속 코드처럼 사용하지 않는 import들이 있다. 일일히 지우기엔 너무 양이 많고 앞으로도 쌓일 가능성이 있어서 Eslint로 저장 시에 지워지게 할 것이다. eslint 설치부터해서 적용법까지 해보자. npm i eslint --save-dev 해당 명령어로 eslint를 설치한다. npm install eslint-plugin-unused-imports --save-dev 그리고 import제거하는 플러그인을 설치한다. { "plugins": ["unused-imports"] } { "rules": { "@typescript-eslint/no-unused-vars": "off", "unused-imports/n..

Programming/AWS

[AWS] AWS 사용량 예산 초과 시 이메일로 알림 받기

오늘은 AWS 예산 초과 시 이메일로 알림받는 법에 대해 포스팅을 할 것이다. AWS 클라우드 서비스를 사용하다보면 예상치 못한 사용량 급증이나, 혹시 모를 엑세스키 해킹을 통한 요금 폭탄을 맞을 수 있으므로 필수적으로 해주는게 좋다. 우선 루트 계정 외에 IAM 관리자계정으로 하려면, 루트계정에서 권한을 변경을 해줘야한다. 루트계정으로 로그인해서 My account에서 내려보면 결제 정보에 대한 IAM 사용자 및 역할 액세스가 있을 것이다. 이부분에서 IAM 액세스 활성화 버튼을 눌러서 업데이트를 해주면, 관리자인 IAM 사용자가 청구데이터에 접근할수 있게 된다. 이제 권한을 설정을 변경하였으니 관리자인 IAM사용자나, ROOT계정 모두 진행할 수 있다. 이제 Budgets으로 이동해보자. 예산 생성으..

Programming/AWS

[AWS] IAM 계정 생성 시 E-mail로 알림 받기

최근에 주변에서 AWS 엑세스키가 털려 원인불명 고사양 인스턴스가 생기면서 몇 천만원 가량의 비용이 발생됬다. 램이랑 CPU를 말도안되게 잡아먹고 있었던걸 보면 아마 채굴을 했지 싶다.. 나도 혹시 모를 상황에 미리 대비를 해야겠다고 생각했다. 그래도 우선 "IAM 계정 생성 시 내 이메일로 알림이 오게 설정"을 할 것이다. 꽤나 서칭을 했는데 관련 절차서가 제대로 된게 하나도 안나오더라. 그래서 이번에 나라도 제대로 포스팅 해야겠다. 우선 IAM 관련 설정이기 때문에, 모든 작업은 버지니아 북부 리전에서 진행되야 한다. 먼저 EventBridge가 처리할 이벤트를 포함하여 IAM 이벤트를 캡처하도록 CloudTrail을 생성해보자. 추적생성으로 들어간다. 이름을 정하고 스토리지 위치는 S3버킷 생성으로..

Programming/협업

[Git] commit할 때 hooks으로 console.log() 삭제, Error

팀원들과 협업을 하면서 가끔 console.log()를 제거하지 못한 채 commit을 한적이 있었다. 이는 별거 아닌거 같아보여도 운영서버 AWS에 올라갔을때 악영향을 끼친다. 코드에 민감한정보(암호, Api키, 사용자 데이터)를 기록하면 서버로그에 엑세스할 수 있는 모든 사람에게 노출이 될 수 있고, 시스템 리소스를 소비하고 처리시간을 차지하여 애플리케이션 전체 성능에 영향을 끼칠수 있고, 로그가 빠르게 복잡해 져서 관련 정보를 수정 삭제하기 어려워져서 디버깅이 어려워지고, 제일 중요한, AWS는 저장 및 처리된 데이터 양에 대해 요금을 부과하므로 비용이 증가할 수 있다. 이제 console.log() 제거에 필요성을 느낄 것이다. eslint로 단순하게 "no-console" 에서 에러 처리를 해버..