전체 글 654

[remote] 싱가폴, 글로벌 기업 - 주니어 백엔드 개발자 구직 사이트 등

한국만큼 개발자가 많고 구하기 쉬운 시장이 없다고 한다. 그래서, 기업 대표 입장에서는 한국이 좋은 시장이라고. 나는 역으로, 싱가폴이나 it 개발자를 필요로 하는 시장으로 remote 근무를 하고 싶다. 다시, openAI에 물어보았다. 싱가폴 remote로 주니어 백엔드 개발자로 일할 수 있니? 싱가폴에서 리모트(remote)로 일하는 여부는 개발자와 고용주 또는 기업의 정책에 따라 다를 수 있습니다. 리모트 개발자로 일할 수 있는 여부는 다음과 같은 요소에 따라 결정될 수 있습니다: 기업 정책: 일하는 기업이 리모트 근무를 허용하는지 여부는 중요한 요소입니다. 일부 기업은 리모트 근무를 적극적으로 지원하며, 다른 기업은 현지 근무를 선호할 수 있습니다. 직무: 어떤 직무에서는 리모트 근무가 더 쉽게..

(글로벌, 국내) 주니어 백엔드 개발자 취업 위해 공부할 부분 (feat.openAi)

[취업준비 시 집중적으로 공부할 부분] 프로그래밍 언어 하나 숙련 - javascript(node.js) 공부 , 웹 프레임워크 - express.js 공부 , 데이터베이스 관리 시스템 (MySQL)/ 쿼리 작성 능력 HTTP 프로토콜 , RESTful API 디자인 원칙 클라우드 플랫폼(AWS, Azure, Google Cloud) 사용하여 애플리케이션 배포 관리ful 도구 및 라이브러리 익숙 (Git, Docker, RESTful 클라이언트 라이브러리, 테스팅 프레임워크) 웹 애플리케이션 보안 개념 API 엔드포인트를 설계하고 구현 [내가 각 항목에 따라 공부한 것을 기록한 progress, link 들의 통합본] Junior Backend Developer 기술 스택, 도메인 공부 전략 ** 공부 ..

Project2: Middleware [개념]

Middleware란? API는 요청이 들어왔을 때부터 응답으로 내보내기 까지의 전 과정을 처리합니다. 그 안에서 여러 함수들을 차례대로 거치게 되는데 그 함수 하나를 middleware라고 합니다. 미들웨어에서 다음 기능으로 통과시킬지 말지 결정 할 수 있습니다. 이를 응용하면 미들웨어를 이용하여 여러 기능실행 전 수행해야할 기능을 만들 수 있습니다. 용도 1. req.body 추가 (app.use(express.json());) postman 사용시 raw - json으로 body 값을 보냈을 겁니다. 하지만 http의 특성상 모든 값들은 string으로 전송됩니다. 그래서 원래라면 string을 json 형태로 바꾸어서 req.body 안에 넣는 기능을 따로 구현했어야 했습니다. 이는 모든 요청에서..

Project 2 - 5일 차 (9) : 내가 push 한 '로그인 함수' : pull request 팀원 리뷰 + 수정

올리고 몇 분 사이 바로 올라오는, 팀원분의 빠른 피드백 좋다 추석 연휴 전 일단, commit, push 하는 게 좋겠다 싶어서 올려놓고 보느라 수정 사항이 좀 있지만. 과정에서 배우는 게 중요하니까. 나의 코드와 보면서 비교해보기 이 부분이 models/ dataSource.js에 들어가 있군 (추후 layeredpattern 시에) port 변수 안 해도 도 ㅣ나? 수정 중에 깨달은 사실, pull request 에 이렇게 어떤 파일의 몇번째 줄이라고 나오니, 수정할 때 해당부분을 하나하나 찾지 않아도 돼서 편리하군! 수정 후 코드 const express = require('express'); const morgan = require('morgan'); const cors = require('co..

Project 2- 5일차 (8): 로그인 pull request template.md

1. 본 PR이 우리 팀의 웹 서비스 제품성에 어떠한 기여를 하였고, 사용자에게 어떠한 기대효과를 전달하는지 작성해주세요. 1-1. 내 PR이 제품 내 어떠한 기능적인 배경/전후맥락 가운데 개발되었나요? 회원가입 후 로그인을 위한 기능 1-2. 내 PR이 Merge 됨으로써 유저에게 전달되는 편익/기대효과는 무엇일까요? 로그인을 통해 상품목록 확인, 장바구니 기능 이용, 주문 및 결제까지 이어지는 기대효과 2. 이 브랜치에서 어떤 내용을 개발했는지 큰 제목과 상세 내역을 적어주세요. 회원가입을 한 유저 database에서, 기입한 이메일 주소와 비교 후, 회원가입한 유저인지 판별. 판별 후, 회원가입을 한 유저만 로그인을 하고, 리뷰를 작성할 수 있도록 커뮤니티 관리를 하는 안전장치 고객의 주문 및 결제..

Project 2- 5일차 (7): [로그인 API, 깃허브 PR]

'feature/login' branch의 app.js 전체코드 const express = require('express'); const morgan = require('morgan'); const cors = require('cors'); require('dotenv').config(); const app = express(); app.set('port', process.env.PORT || 8000); app.use(cors()); app.use(morgan('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use((req, _, next) => { const error = new Error(`..

Project 2 - 5일 차: 깃허브의 매력 세계로 풍덩. remote

프론트에드 멘토님 (깃허브 2인자)과 나의 Q&A Q: 내가 프로젝트 2를 하다가, 생각나서, 프로젝트 1 코드 app.js를 수정했다. 그러면 나는 이것을 push하기 위해서는 지금 project 2 에 연결돼 있는 remote를 끊은 뒤에, 다시 project 1 폴더에 remote 를 연결해서 Push 하면 되느냐? A: 아니다. remote를 각각 연결하면 된다. A: git remote -v를 해보면 안다. project 1과 project2의 remote 연결이 각각 다르게 나온다. 이게 보여준다. 하나의 로컬에 하나의 Remote만 가능한 거 아니냐? 하나의 폴더에 하나의 remote가 가능한거지, 각각의 origin변수이다. 아하, origin이라는 변수가 각각 값을 갖는구나, 각각 다른 ..

Project 2 - 5일 차 (6) : 내가 push 한 회원가입 함수 : pull request 팀원 리뷰 + 수정본 ** 해야 함

username === undefined 는 !username 으로 축약 수정본 필수사항 및 선택사항 정보 받아온 거 저장하기 수정본 그런데, 선택사항은 어디서 받아오지? key error는 필수사항에 대한 건데? --> insert into query문에서 선택 + 필수 정보 모두 포함 만약, 유저가 선택 정보 기입을 안 했다면 'Undefined/ -'로 뜨겠지만, 일단 쓸 경우를 대비해서 가져오긴 해야지 [const error = new Error("KEY_ERROR"); error.statusCode = 400; throw error; 해당 부분은 utils 폴더의 throwError(400, 'KEY_ERROR') 함수를 사용해서 축약될 수 있을 것 같습니당] 계속 반복되는 부분이라, 아마 이것..

Project 2 - 5일 차: 깃허브 [local 최신화, git pull origin 하며] 깃허브에 대해 복습, 새롭게 알게 된 사실

github 에서 remote 저장소에서 변경사항을 받으려고 local을 최신화하려고 하면, git pull origin [pull 받으려는 branch 이름] 그런데, 그 pull받으려는 branch로 checkout 가서 받아야 함. branch 간 이동을 위해서는 무조건 변경 사항 저장 , git add. , git commit -m 후에 가능 git add. git commit git pull (Dev. ) (fetch and merge = pull ; 그래서 merge가 자동으로 될 것.) git merge (dev는 dev 대로 최신화) -=> feature에 dev를 Merge시킴 branch를 dev에 merge하는게 아니니까. branch에 dev를 merge 하는 거니까. 그런데, 잘못..

Project 2- 5일차 (3): 회원가입 pull request template.md

1. 본 PR이 우리 팀의 웹 서비스 제품성에 어떠한 기여를 하였고, 사용자에게 어떠한 기대효과를 전달하는지 작성해주세요. 내 PR이 제품 내 어떠한 기능적인 배경/전후맥락 가운데 개발되었나요? 고객의 회원 전환 및 유입을 최우선으로 하여, 우선 회원가입 유저를 늘리고, 회원가입 중 이탈을 줄이기 위해, 주소와 같은 세부 정보들은 결제창에서 받고, 회원가입 시 받는 유저 정보는 간소화 하였습니다. 또한, 비밀번호와 아이디 특수문자와 길이 조건을 보안을 지킬 수 있는 선에서 최소한의 제한을 두었습니다. 내 PR이 Merge 됨으로써 유저에게 전달되는 편익/기대효과는 무엇일까요? 유저는 최소한의 시간을 투자하여, 회원가입을 하고 관심 있는 상품 리스트들을 보며, 동시에 장바구니에 담아둘 수 있습니다. 회원가..