전체 글

전체 글

    AWS 대신 맥미니

    맥미니를 홈서버로 추천 프로젝트를 시작하면서 AWS를 사용하려했지만, 매달 나가는 비용이 만만치 않을 것으로 생각했습니다. 그래서 직접 서버를 구축해보자 라는 생각으로 시작하게 되었습니다. 라즈베리파이, 현재 사용하고있는 window 본체 등등 많은것을 생각해 보았지만 전력, 소음, 외관, 관리, 활용성을 생각하여 맥미니를 고르게 되었습니다. 새 제품으로 맥미니를 사게 된다면 돈이 많이 들테지만, 저는 당근을 이용했습니다. 맥을 판매하시는 분들 중에 적응을 못해 적게 사용하고 판매하시는 분들이 많기 때문입니다. 덕분에 M1 / 256GB / 16GB / 에플케어 25년 11월까지 제품을 65만원에 구매했습니다. (M1, M2 큰차이 없다는 의견을 듣고 M1으로 구매하고 16GB를 선택했습니다. 전력도 M..

    Artifact, AWS IAM - GitHub Actions 배포 자동화 (2)

    이전 글에 이어 작성했습니다. 이전 글에서 2가지의 문제점이 있었는데 Artifact와 AWS IAM을 통해 해결하였습니다. 1. 배포 단계를 빌드에서 사용 -> Artifact 를 통해 업로드, 다운로드 - actions/upload-artifact@v4 - actions/download-artifact@v4 2. SSH 전체허용 -> AWS IAM를 이용하여 보안 그룹에 IP 등록 및 삭제 - github action IP 획득 (https://github.com/haythem/public-ip) - aws-actions/configure-aws-credentials@v4 사전작업 1. 우선 권한을 얻기 위해 AWS에서 IAM 사용자를 추가해줍니다. 2. 사용자 이름을 넣고 권한설정에서 아래와 같이 ..

    AWS EC2에 SSH으로 - GitHub Actions 배포 자동화 (1)

    배포 자동화를 자주 이용하지는 않았습니다. 물론 처음에는 자동화 배포를 적용했지만, 제가 느끼기엔 EC2 인스턴스가 크지 않아 수동으로 배포하는 것이 더 컨트롤하기 쉽고 빠르며, 변수상황에 대처하기가 너무 좋다고 생각했습니다. 그렇다 보니 반복적인 작업이 마냥 귀찮게만 느껴지지는 않은 상황이었습니다. 하지만 관리해야할 서버, 프로젝트가 늘어남에 따라 자동화 배포를 하기로 적용하기로 결정했습니다. Jenkins, Github-Actions, AWS-Codebuild, GCP-Cloudbuild 배포 자동화할 수 있는 방향은 많습니다. 큰 프로젝트는 Jenkins, 가벼운 자동화 배포는 github actions을 많이 이용하는 것 같습니다. 그 중에서도 저는 AWS-Codebuild / Deploy (Co..

    2023년 백엔드 개발자 회고

    경험에 의한 주관적인 내용입니다. 비전공자로 부트캠프를 수료하고 백엔드 개발자로 스타트업을 다닌 지 1년 반이 지났습니다. 백엔드에 모든 것을 혼자 담당했었는데, 그동안 무엇을 했고 아쉬운 점이 무엇이었는지 생각하려면 생각나지 않습니다. 그래서 그러한 점을 상기시키고, 발전을 위해 쓰게 되었습니다. 부트캠프를 수료하고 적은 글이 생각보다 많은 사람들이 보고 공감도 많이 눌러 주셨는데, 많은 도움이 되었다 생각되어 용기를 얻은 부분도 있습니다. 저 또한 다른 사람들의 회고나 경험을 적은 글들을 보면 짧은 시간에 간접적인 경험을 하게 되어 도움도 되었고 재미있었습니다. 제가 적은 글도 그렇게 되었으면 좋겠습니다. 부족했던 점 먼저, 아쉬워서 개선하고 싶은 내용이 가장 중요하다고 생각되어 먼저 나열해 보겠습니..

    [AWS] AWS Activate 스타트업 $1350 지원

    aws에서 스타트업에게 1350달러를 지원한다하길래 현재 환율이 미쳐있기도 해서 신청했습니다. 그리고 서버 개발자라면 돈에 민감하게 반응해야한다고 생각합니다. https://aws.amazon.com/ko/activate/founders/ 지금 기준으로 1:1291 입니다. 2008년 금융위기 다음으로 역대급 환율.. 자격요건이 크게 까다로운게 아니라서 대부분 회사가 받을 수 있다고 생각합니다. 신청하는 단계도 크게 어렵지 않고 회사정보, 개인정보를 넣으면 됩니다. 개인정보를 넣을 때, 링크드인 계정이 필요합니다. 특별한 정보없이 간단하게 만들어서 프로필 주소를 넣으면 됩니다. 7일 걸린다고했는데 4일만에 왔습니다. 정리하자면 1. 유효기간 2년, $1000 지원 / 자동 적용 2. 유효기간 1년 $35..

    [AWS] AWS 서버비용 150만원 환불 내용

    많은 회사나 프로젝트에서 AWS를 사용하고 있습니다. 그만큼 사용하기 편리하고 대중적이라 생각하는데, 처음 사용하거나 익숙치 않아 잘못하면 요금이 많이나오기 쉽습니다. 제가 프로젝트를 하면서 항상 예상치 못한 요금을 얻어맞는 경험을 했는데, 그 때마다 문의를 넣어 환불을 쉽게 받았습니다. 그 때 부터 청구서를 한 번씩 확인하는 습관을 가지게 되었습니다. (Billing을 치면 월 별과 앞으로 결제될 예상 청구서 까지 잘 나와있습니다.) 회사에서 AWS의 청구서를 확인해 봤는데, 너무 과도하게 청구가 되어 세부적으로 확인을 해봤더니, 사용하지 않는 서비스인데 매달 400달러씩 나가고 있었습니다. 한국 돈으로 50만원으로 3달 동안 청구가 되었습니다. 개인적인 실수로 10만원 환불을 받아본 경험은 있었지만,..

    코드스테이츠 부트캠프 수료 후 취업까지 회고

    경험에 의한 주관적인 내용입니다. 수료 하고 약 5개월 이후 취업을 했습니다. 5개월 동안의 일을 나눠서 생각해보면, 충전의 시간과 개인적인 일로 1개월, 프로젝트 리팩터링과 추가적인 공부의 시간으로 3개월, 이력서 작성 및 구직활동 1개월을 보냈습니다. 비전공자이고 실력이 뛰어난 개발자는 아니지만 저만의 프레임을 만들어 그 프레임에 맞추려고 했었기에 그 과정에서의 느낀 점을 적어보려 합니다. 그리고 저만의 회고록이지만, 다른 사람에게 도움이 되는 글이 되었으면 합니다. 부트캠프 옳은 선택이었는가? 1년 전에는 옳은 선택이었다고 생각하지만 지금 시점에서 선택을 한다면 70%는 정도 옳은 선택이라고 생각합니다. 1년 전에는 코딩 열풍이 강했었기에 교육을 받기 위한 경쟁 또한 치열해서, 돈을 내서 빠르게 공..

    [node.js] express-validator param error

    express-validator로 유효성 검사를 할 수 있는데 param의 경우, 경로가 어떻게 되어 있느냐에 따라 검사를 하는 경우가 있고 그렇지 않은 경우가 있습니다. 아래의 코드를 예시로 들면 /route/:id 의 경로를 사용할 경우 string으로 타입이 결정되고 /:id 의 경우 number로 타입이 결정됩니다. 그러므로 전자 경우에서는 유효성검사가 제대로 되지 않고, 후자는 유효성 검사가 제대로 동작이 됩니다. const express = require('express') const { param } = require('express-validator') const app = express() // Not sanitizing correctly app.use('/route/:id', [ par..

    [ORM] TypeOrm setting

    제 경험에 비추었을때는 보통 자바스크립트에서는 시퀄라이즈를 많이 쓰지만, 타입스크립트에서는 TypeORM을 많이 쓰는 것 같습니다. 그리고 시퀄라이즈를 이미 잘 쓰고 있지만 타입스크립트를 배우면서 TypeOrm을 구글링해서 찾아보고 적용하는데, 전부 내용이 이전 버전이라서 의문점이 많았는데 결국 공식문서가 답이었고, 시퀄라이즈를 알고 있는 상태에서 typeorm 공식문서를 보게되니 결국 사용 구조는 비슷하기 때문에 천천히라도 이해할 수 있었습니다. 진짜 처음에는 공식문서만 봐도 답답했었는데 (지금도 답답하지만) 길은 항상 있다는 것을 느꼈습니다. TypeOrm 특징 TypeORM은 많은 데이터 베이스를 지원하고 (MySQL / MariaDB / Postgres / CockroachDB / SQLite /..

    [TS] Decorators

    데코레이터는 아직 확정적으로 사용할 수 없는 기능이기 때문에 변경사항이 일어나면 코드를 수 없이 변경해야 하기 때문에 깊게 사용하지 않는 것이 좋습니다. 데코레이터는 향후 릴리스에서 변경될 수 있는 실험적 기능입니다. 공식문서에서도 명확히 구현되지 않아 문제점에 대해 이야기 하고 있습니다. 그럼에도 불구하고 많은 곳에서 사용하고 있습니다. (내용은 공식문서에 있는 내용입니다.) Decorators 기능 활성화 Decorators를 활성화하려면 tsconfig.json에서 experimentDecorators compiler options를 true로 설정해야 합니다. { "compilerOptions": { "target": "ES5", "experimentalDecorators": true } } De..