항해14기 본과정/항해14기 WIL(제출용) 10

[항해 14기] 13주차 WIL (실전프로젝트 5주차 회고)

실전프로젝트 담당 기능 1. 서버 관련 1) EC2 인스턴스 세팅/관리 - ubuntu 20.04 / t2.small - NginX - PM2 - CORS/방화벽/Port Forwarding 2) HTTPS - Domain : 가비아 - AWS Route53 - AWS Certificate Manager : SSL/TLS - EC2 Elastic Load Balancer 2. CI/CD 환경 1) CI - Github Actions 2) CD - AWS S3 - AWS Codedeploy 3. Node.js 1) Express - Architecture 설계 : Layered Architecture(3 layered) - Structure Directory 설계 - 환경 세팅(nvm, env, git, ..

[항해 14기] 10주차 WIL (실전프로젝트 2주차 회고)

1. 진행한 것 1) 1차스코프 진행 및 코드리뷰/리팩토링 - 각자 코드/새로 사용한 기술 공유 및 리팩토링 진행 - status 컨벤션 - like 로직 구현, 트랜잭션 적용 2) 배포환경 추가 - nvm - sentry 3) FE-BE 연결 - cors 이슈 해결 - 로그인 로직 해결 4) https 2차시도 5) swagger 작성 6) 공부한 것 - server swapping - aws - 면접 스터디 발제 2. 회고 - 1차 스코프가 일정에 맞게 완료됨, 일정관리와 협업에 익숙해진 듯 - 서버 관리를 진행하다보니 ubuntu와 aws 시스템, 배포관련 tool(nginx, pm2, nvm, sentry 등)들에 익숙해짐 - let's encrpy의 certbot 방식에 또다시 실패, node반..

[항해 14기] 9주차 WIL (실전프로젝트 1주차 회고)

1. 진행한 것 1) 기획 - 주제 , 기능, 스택 선정 2) 컨벤션 - 코드/커밋 컨벤션 3) 프로젝트 뼈대 구현 - ERD , api명세서 제작 - 아키택쳐+스트럭쳐 디렉토리 제작 4) EC2 배포 - aws ubuntu 프리티어 5) CI/CD 환경 구축 - github actions + aws codedeploy + aws s3 6) HTTPS - 도메인 구매 - nginx 구축 - 발급 1차시도 실패 2. 회고 - 디자이너 합류 및 시니어 멘토님들의 멘토링이 추가되어 실전에 가까운 프로젝트 경험 - 기존의 1주짜리와 달리 6주의 시간이 주어져서 다양한 시도를 진행할 예정(git-flow, jest-testcode, joy-validation, https, ci/cd, open api, 크롤링, ..

[항해 14기] 8주차 WIL (클론코딩 회고)

1. 지난주 첫 협업과 비교 - 전체 회의 빈도를 늘리고, FE/BE 기능 담당자 끼리 잦은 소통을 진행하여 각 진영끼리 오해없이 무난하게 진행되었다 - 배포도 큰 이슈없이 무난히 진행되었다 2. 아쉬운 점 - 여전히 FE 인원이 부족하여 일부 api들을 적용 시키지 못하였다 - 피로가 쌓인 상태에서 무리하다가 컨디션 관리에 실패하였다 3. 회고 - 지난주 첫 협업때 발생했던 실수/이슈(소통, 배포 후 FE/BE연결)들에 대하여 명확히 인지하고 개선하여 협업 효율이 올라갔다 - socket.io를 이용한 1:1 대화방 기능을 맡았었는데 FE인원이 부족하여 클라이언트파일/css작업/서버파일 작업을 혼자서 하게 되었다. 시간은 많이 걸렸지만 덕분에 socket 동작방식과 프론트-백엔드 플로우에 대한 이해가 ..

[항해 14기] 7주차 WIL (FE/BE 협업 회고)

1. 소통 이슈 - 주제 선정 및 기능 토론 이후 와이어 프레임과 api 명세서를 작성하였는데, 서로 기능 구현 범위에 대한 오해도 있었고 api 명세서에 FE진영에서 오해할 수 있는 방식으로 작성된 부분이 있어 몇번의 소통과 수정이 추가적으로 필요하였다 2. 배포 후 연결 이슈 1) CORS 이슈 - 동일출처정책 이슈가 있었으나, CORS 라이브러리를 이용하여 도메인 허용 및 크리덴셜 설정으로 해결 2) 개발환경/배포환경 이슈 - 백엔드의 개발 환경에서 잘 진행되었던 부분들이 FE와 연결 후 에러가 나는 부분이 있었는데 쿠키 전달과정에서 대/소문자 구별이 사라지고, 인증 미들웨어에서 req를 cookie에서 받아오고 있었는데 프론트에서는 header에 담아줘서 일어난 이슈 - 식별자들의 대소문자를 명확..

[항해 14기] 6주차 WIL (CORS)

1. CORS 1) Cross-Origin Resource Sharing - 웹 애플리케이션에서 다른 도메인(Origin)으로부터 리소스를 요청하면 동일 출처 정책(Same-Origin Policy)이 발생하여 요청이 차단되는데 이 때 CORS체제를 이용하여 접근 가능하도록 권한 부여가 가능 2) 도메인/출처 Protocol,Host,Port 까지 같으면 동일한 출처 3) 다른 출처를 허용할 경우 위험성 - CSRF(Cross-Site Request Forgery) 공격: 다른 도메인으로부터의 요청을 허용하면 악의적인 웹 사이트가 사용자의 인증 정보를 도용하여 서비스의 보안을 침해할 수 있다 - 정보 노출: 다른 도메인에서 요청한 리소스에는 사용자의 개인 정보가 포함될 수 있기 때문에 위험 4) CORS..

[항해 14기] 5주차 WIL (ORM, SQL/NoSQL)

1. ORM 1) ORM(Object-Relational Mapping) - 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터를 매핑하고 연결하는 기술 2) 특성 - ORM을 사용하면 데이터베이스 테이블과 객체를 일치시키기 위한 별도의 SQL 쿼리를 작성할 필요 없이, 객체를 통해 데이터베이스를 조작 가능 - ORM은 데이터베이스 스키마를 추상화하여 객체와 관련된 데이터에 접근성을 높여 쉽게 관리할 수 있게 해줌 3) 상세 - 객체 지향 프로그래밍은 클래스를 이용하고 관계형 데이터베이스는 테이블을 이용하는데 객체 모델과 관계형 모델 간의 불일치가 존재 - ORM을 이용해서 데이터베이스 접근을 프로그래밍 언어의 관점에서 맞출 수 있고 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를..

[항해 14기] 4주차 WIL (Restful API, package.json)

1. Restful API 1) REST - HTTP를 기반으로 클라이언트와 서버 간에 데이터를 주고받을 때 특정 인터페이스를 제공하여 Router들의 분산이 가능해짐 - REST 아키텍처에서는 자원을 중심으로 데이터를 관리. 자원은 URI로 식별되며 HTTP 메소드(GET, POST, PUT, DELETE 등)로 작업 수행. - 상태를 유지하지 않는(stateless) 구조 : 서버가 세션 정보 등을 유지하지 않고 요청에 응답하여 서버 부하가 줄어들고 서버의 확장성이 좋아짐 - 자원에 대한 표현(Representation) : 서버와 클라이언트 간의 데이터 형식에 대한 의존성이 줄어듬 2) URI - URL(자원 위치 식별), URN(자원 이름 식별)으로 구성 3) REstful - REST 방식으로 ..

[항해 14기] 3주차 WIL (Express 미들웨어, RESTful)

1. Node.js - Express 미들웨어 1) Node.js - JavaScript로 작성된 서버 사이드 플랫폼 2) Express - Node.js를 이용하여 웹 서버를 만들기 위한 프레임워크 - 미들웨어를 사용하여 요청(request)과 응답(response)의 사이에 기능을 추가할 수 있다 3) 미들웨어 - Express에서 요청과 응답을 처리하는 방법 중 하나 - 요청과 응답 객체를 변경하거나 다음 미들웨어 함수로 요청과 응답 객체를 전달 가능 - 인증, 로깅, 요청 유효성 검사 등과 같은 일반적인 기능 구현 가능 - Express에서 미들웨어를 사용하려면 use() 메서드를 사용하여 미들웨어 함수를 등록 - req, res, next 매개변수를 가지고 있으며 req는 요청 객체, res는 ..

[항해 14기] 2주차 WIL (JS - ES)

1. ES - js의 표준규격을 의미함 (스펙) - js의 초기 설계 미스를 보완하기 위한 지속적인 버전 업데이트 2. ES3 - 클래식 js. 함수 단위의 스코프, 호이스팅, 프로토타입, 클로저, 모듈 미지원 등 js의 기본적인 형태 3. ES5 - forEach, map, filter, reduce, some, every 등 배열 메소드 추가 - 객체의 프로퍼티에 대한 설정 가능 - 객체를 생성/수정/복사하는 메소드 Object.create, Object.defineProperty, Object.freeze, Object.assign 등 추가 - getter/setter 와 Object.keys(for in대체 가능) 추가 - strict 모드 - JSON 지원(이전에는 XML) 리터럴과 유사하나 k..