본문 바로가기

전체 글

(133)
[후기]first project 팀명: Second Wind 프로젝트명: OMO (오늘 뭐해요?) 프로젝트 소개: 의지박약아, 깜박이들을 위한 Todo list 기능의 웹 서비스 담당업무 : fullstack 2주간의 프로젝트를 마감하고 후기를 남긴다. 초반에 많은 아이디어가 있었고 그것을 현실적으로 구현하기 위해 필요한 시간과 우리의 실력에 대한 면밀한 검토가 없는 상태로 진행을 하다보니 결과적으로 2주안에 로그인과 로그아웃, 더미 데이터에서 불러오는 상태로 프로젝트를 종료하게 되었다. 또한 프론트에서는 CSS에 대한 시간을 할애할 수 없었다 보니 실제로 구현했다고 민망한 수준의 결과물이 나왔다. todolist를 선택한 이유가 우리가 부트캠프에서 배운 것을 최대한 활용하려고 했었는데 나의 경우는 back-end를 진행하면 seque..
TIL - 211206 [배포] 배포 자동화 Achievement Goals 배포 자동화에 정의와 이점에 대해 설명할 수 있다. 배포 파이프라인이 무엇인지 정의할 수 있다. 파이프라인을 구성하는 단계(Stages)와 작업(Actions)에 대해 설명할 수 있다. AWS 개발자 도구를 활용하여 파이프라인을 구축할 수 있다. 배포 자동화 파이프라인 구축 과정에서 문제가 발생할 경우, log 파일과 공식 문서를 통해 해결할 수 있다. AWS에서 제공하는 IAM 서비스를 이해하고 사용할 수 있다. 그룹, 사용자, 정책, 역할의 차이점과 특징에 대해서 이해할 수 있다. IAM 정책에 대해 이해하고 특정 주체에게 권한을 부여할 수 있다. IAM 보안 모범 사례에 대해 찾아보고, 서비스를 이용하며 적용할 수 있다. CAPTER - Automated Deploy..
(Docker) Docker anchor docker hub (레지스트리)에서 필요한 프로그램을 다운로드 받을 수 있다. docker 생태계에서 프로그램은 image라고 불리운다. image를 실행하면 container가 실행된다. image는 여러개의 container를 가질 수 있다. pull: docker hub에서 image를 다운받는 행위 run: image를 실행시키는 행위. container 안에 포함되어 있는 image가 실행된다 Docker CLI 명령어 docker (images) pull : image를 레지스트리로 부터 다운로드 docker images: 다운받은 image 리스트 확인 docker (container) run httpd : 'httpd' image 실행 docker (container) ps : List ..
(에러핸들링) (AWS EC2) had too many unstable restarts AWS를 통해 서버를 작동시키려고 한다. PM2 라이브러리를 설치하고 authbind를 통해 권한을 부여한 뒤 터미널을 종료해도 백그라운드에서 실행 되게 하였다. 그런데 계속해 작동시킨 서버 컴퓨터가 원인을 알 수 없게 종료가 되고 많다. PM2 log를 통해 작동 상황을 알아보니 계속해서 작동을 시켰다가 도저히 안되니 ' had too many unstable restarts'라는 오류 메세지를 주고 Stopped 처리 해버렸다. 2가지 이유가 있다. 1) endpoint 내가 실행시키는 서버 측면의 js 파일의 endpoint를 잘못 지정한 경우다. stackoverflow 답변 2) node의 모듈에 오래된 거나 나쁜 버전의 라이브러리들이 설치된 경우 stackoverflow 답변 나의 경우는 2번..
(네트워크&통신) 보안 위변조, 세션방식 탈취 사용의 의미 세션 방식에서는 세션을 식별할 수 있는 session_Id가 발급된다. A의 세션아이디를 탈취해서 B가 A의 키로 접속하면 A의 계정으로 로그인할 수 있다. JWT도 마찬가지이다. 이건 단순한 탈취이지 위변조라고 하지는 않는다. A의 세션Id나 토큰을 모르는 상태서 B가 A의 공개된 정보를 이용해 키를 만들어낼 수 있는가? 혹은 B 자신의 토큰을 변조해서 높은 권한을 취득할 수 있는가를 등을 보통 위변조라고 한다. 세션이나 JWT 모두 이렇게 하기는 어렵다. 탈취해서 사용하는 경우를 막으려면 첫째, 토큰의 탈취를 어렵게 한다. 둘째. 토큰을 탈취해도 사용하기 어렵게 만든다 는 방법이 있다. httpOnly / httpsOnly cookie에 보관하면 적어도 XSS 등에 의해 탈취되는건 ..
TIL - 211130 [Git] 브랜치 관리와 고급 기능 CAPTER - Git Branch Achievement Goals Git 브랜치의 개념을 이해할 수 있다. Git 으로 협업하며 브랜치를 나누는 이유를 이해할 수 있다. Git 으로 프로젝트를 관리하며 브랜치를 생성, 전환, 병합할 수 있다. 1. 브랜치 Intro 브랜치는 독립적으로 어떤 작업을 진행하기 위한 개념. 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 브랜치 기능의 장점은 다음과 같다. 한 소스코드에서 동시에 다양한 작업을 할 수 있게 해준다. 소스코드의 한 시점과 동일한 상태를 만들고, 브랜치를 넘나들며 작업을 수행할 수 있다. 각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있다. master 또..
(에러핸들링) axios body 값 설정 axios의 메소드를 사용하는 방식은 2가지이다. 우선 ES6 형태로 import 해주는 건 동일 import axios from 'axios'; 그러나 주의 해야 하는 건 const ___ require 형태는 2가지 방식 중 한 가지만 적용되기 때문에 고민 타임 줄여주는 ES6 형태로 import 하자. 1) 기본 타입 axios({ }) axios({ url: 'https://localhost:4000/users/login', method: 'post', data: { userId: this.state.username, password: this.state.password }, withCredentials: true }) axios 모듈 안에 객체로 필요한 정보들을 넣어 준다. 특히 data라고 명..
(에러핸들링) https session 통신에서 withCredentails: true axios로 통신 get 요청에서 session 기반의 통신을 하고 있다. axios post 요청을 할 때 withCredentials : true를 하면 쿠키에 세션Id가 저장되고 세션Id를 기반으로 해서 인증이 이루어지게 된다. 마찬가지로 axios.get 요청을 할 때도 withCredentials : true 이미 받은 세션id를 서버 측면에서 확인하고 유저 정보를 클라이언트로 보내주게 되어있다. 그런데 미치겠는데 계속해서 에러 메세지만 뜬다. 유저정보를 받지 못해서 그렇다. 첫번째 체이닝인 then() 까지는 result값이 잘 들어오는 것을 확인했다. 그런데 두번째 체이닝 then()에서는 값이 들어오질 않는다. 그냥 에러로 처리가 되고 catch체이닝에서 err 처리를 해준다. 몇번을 다시..