본문 바로가기

분류 전체보기

(32)
국비지원 코딩 부트캠프 수료후 취업까지 - 스파르타 내일배움캠프 후기 이 글을 보시는 많은 분들이 도움이 되길 바라며 실제로 부트캠프를 수료하고 취업까지 어떤 과정을 거쳐왔었는지, 수료 이후 취업 시장은 어땠는지에 대한 기록을 남기고자 합니다. 개발자 이전의 삶 & ' 개발자 ' 직업 선택 이유 저는 서른 초반에 개발자 로서의 꿈을 가지고 공부를 시작하였습니다. 먼저 말씀드리고 싶은 부분은 내일배움캠프 포함 총 공부기간은 대략 1년여가량 됩니다. 그 이전에 저는 꾸준히 외식업에 종사를 해왔고, 제 사업을 운영하기까지 오랜기간 한 분야에 몸담아 왔기에 개발자로서의 꿈을 시작하기에는 사실 큰 결단이 필요한 상황이었습니다. 더군다나 저는 홀몸이 아닌 결혼한 상태이기때문에 책임져야 할 아내도 있었구요. 코로나 시즌을 계기로 사업을 접고 공부를 시작하였는데, 저의 첫 시작언어는 파..
23.12.13 ] H Bank 최종프로젝트를 Nest.js 로 해서 이번엔 Node.js 를 활용한 프로젝트를 진행해보려 한다. 모든 언어는 Ts 로 작성할 예정이고, Vue3 는 Js 로 작성하되 가능하면 Ts로 하려 하고있다. 사용 언어 및 프레임 워크 Node.js , express.js , Typescript , Vue3 데이터베이스 Mysql , Redis 서버 환경 데스크 탑 내 Docker를 활용 및 서버 구축 메인 서비스 1. 계좌 간 거래 ( 예금, 적금 등등 ) 2. 대출 3. 상품 조회 ( OpenSearch ) 4. 외환 관리 위와 같이 기초 구조를 다져놓고 아래와 같이 ERD를 그려보았다. 1. 관계 고려 각 Entity 별로 식별관계인지 비식별관계인지에 대한 여부를 고려했다. 2. User Use..
Database - 정규화 🔥 정규화는 왜 진행해야될까? 정규화를 통해 보다 일관성 있고 정확한 데이터들을 효율적으로 관리할 수 있게 된다. 아래 설명할 제 1, 2, 3 정규화를 통해, 혹은 역정규화를 통해 상황에 맞게끔 데이터들을 관리할 수 있게 된다. 제 1 정규화 아래와 같이 만들어진 Students 라는 테이블이 있다 가정을 해보자. ID 이름 과목명 1 김 철수 JavaScript, TypeScript 2 정 미남 Java, C++ 3 백 미녀 Python 어차피 이름이 같기때문에 그안에 속한 과목명끼리는 한꺼번에 묶어도 좋을것 같다. 그럼 과목명 이란 속성에 여러가지 데이터가 한꺼번에 들어가도 괜찮을까? 💩 No 제 1 정규화는 하나의 속성(Column)당 하나의 데이터만을 가지는 것을 의미한다. 그래서 아래와 같이..
서버의 분리 부트캠프의 최종 프로젝트 - Drink!t 을 진행하며 서버를 분리하게 된 이유를 적어보려 한다. Scale - up , Scale - out 서버의 부하가 증가 함에 따라 2가지 방법이 존재하는데 스케일 업과 스케일 아웃이다. 스케일 업이란 말그대로 서버의 성능 자체를 올려서 트래픽을 원활히 처리하는것. 하지만 컴퓨터의 성능을 올린다는 것은 비용적인 부분에 부담이 클수밖에 없다. 스케일 아웃은 똑같은 성능의 서버를 복제해서 트래픽을 분산처리를 하는것. 당연히 프리티어 를 활용하고 있는 우리로서는 최고의 선택은 스케일 아웃이었고, 효과적으로 트래픽 분산 처리를 위해 로드밸런서를 활용했다. 로드밸런서는 크게 3가지 방식으로 나뉘어 볼 수 있는데 1. 라운드 로빈 각 프로세스별로 시간을 부여해주고 요청을 순..
홈서버 구축기 - 2 ( docker Ubuntu & nginx ) 목표 Docker 에서 띄운 Ubuntu 컨테이너에 Nginx 설치 후, 도메인 연결 & 외부에서 Ubuntu SSH 접속 개인적으로 구매해둔 도메인인 " yhjs1211.online " 이라는 도메인을 활용해서 내 개인 블로그 를 구축하고자 하고있다. 거기에 대한 기반으로는 MySQL Docker Ubuntu Nginx 으로 시작해보려 한다. 문제의 발단 - 도메인과 Ubuntu 내 Nginx 와의 연결 일단 내가 든 첫번째 의문점은 " 부트캠프에서 사용했던 클라우드 서비스 (AWS, Ncloud) 에선 공인 IP를 적어줬는데, 내 IP는 유동 IP라 변동될때마다 고쳐야 하나?" 였다. 생각해보면 언제 통신사에서 내 IP를 바꿀지도 모르거니와 변경점이 생길때마다 일일히 수정 작업을 해줘야 한다면 번거로..
Docker Hub - image push 현재 나는 홈서버 구축중에 있고, Docker를 적극적으로 활용하고 있다. Ubuntu 22.04 환경을 사용하기 위해 초기 세팅 작업중에 있는데 나만의 이미지로 초기 세팅을 맞춰놓고 내 Docker hub에 push 해두려 하는데 그 과정이 아무래도 익숙치 않다보니 적어두고 두고두고 보려 한다. 쉘 환경에서 ' docker login ' 이란 명령어로 로그인은 해둔 상태이며, 다운로드 받은 ubuntu:latest image 를 통해 컨테이너를 실행하고 해당 컨테이너에 초기 세팅을 마무리 지어놓은 채 실행상태에 있는 중이다. # 실행중인 컨테이너 이미지화 시키기 docker commit [CONTAINER_NAME] [IMAGE_NAME] # 생성된 이미지에 Tag 달기 docker tag [IMAGE..
홈서버 구축기 -1 시작하게 된 이유 부트캠프를 진행하면서 AWS를 사용할때 좋지도 않은 성능의 서버를 쓰면서 과금이 될까봐 조마조마 한것이 늘 불만중에 하나였다. 집에서 놀고있는 몇년 지난 노트북 조차도 프리티어로 제공되는 서버에 비하면 양반이었기 때문인데 그래서 더욱 도커를 활용한 나만의 서버를 구축하는것에 욕심이 생기게 되었다. 도커는 무엇일까? 내가 Mac OS를 쓰고있는 지금, 만약 window 운영체제를 사용하고 싶다면 가상환경을 설치해서 그 위에 돌리는 수밖에 없을것이다. 그러면 내 현재 기본 운영체제인 Mac 위에 window를 또 설치해서 불필요한 OS 가 탑재가 되고 그 위에서 window의 프로그램만 돌아가는 상황인데 여기서 중요한 점 내가 필요한건 프로그램이지 window가 아니다 윈도우는 필요 없고..
webRTC - socket io webRTC - Socket 현재 최종 프로젝트중에 webRTC를 활용한 서비스를 구현중에 있다. 예상치 못한 문제에 봉착해 꽤나 애 먹은 문제를 최종적으로 어떻게 해결을 했는지까지의 여정을 한번 적어보려 한다. 배포 전 & 후 배포하기 전, 로컬 상황에서는 총 3개의 서버를 구동시켜야 했다. ( 원래 총 4개인데 AI 관련 서버는 제외 ) 메인 서버, 채팅 서버, 프론트 서버 이렇게 3가지 였는데, 그 이유로는 채팅 서비스에 접근하기 위해서는 로그인된, 즉 검증된 유저만 접근이 가능하게끔 로직을 구현했고, 그래서 메인서버에서 토큰을 쿠키 값으로 받아온 이후에 접근을 해야만 했다. 프론트의 포트는 3200, 메인서버는 3000, 채팅서버는 8080이고 게이트웨이가 8000이었다. ( 일부러 구분점을 잡..