일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- manytomanyfield
- pm2
- django westagram
- 프로미스
- rebase
- docker
- bcrypt
- typescript
- westagram
- 트랜잭션
- wecode
- TypeError: this.boardRepository.createBoard is not a function
- async/await
- 자바스크립트
- 호이스팅
- nodeJS
- Django
- Jest
- 스코프
- CORS
- node
- 장고초기세팅
- crud2
- 노드
- on_delete
- javascript
- 실행 컨텍스트
- OSI7계층
- JWT
- status code
- Today
- Total
목록학습 (86)
될때까지
🦊 OSI 7 계층이란 Open System Interconnection 국제표준화기구(ISO)에서 개발한 모델로 네트워크 프로토콜 디자인과 통신을 7계층으로 나눠서 설명한 것이다. 통신기술의 발달과 개인용 컴퓨터의 보급으로서로 다른 컴퓨터, 기기간에 네트워크를 형성할 수 있도록 네트워크 모델의 표준안을 내세웠다. 🦊 OSI 7 계층 구조 캡슐화 : 송신시 7계층에서 1계층으로 각 층마다 자신의 헤더를 붙인다. 디캡슐화 : 수신시 1계층에서 7계층으로 헤더를 떼어낸다. 물리계층 데이터는 0과 1 전기의 Off와 On의 신호로 이루어져있어서 변환하는 단계가 필요하다. 디지털에서 아날로그(원본을 변조=인코딩), 아날로그에서 디지털(원본을 해석=디코딩)로 신호를 변환하는 역할을 한다. 데이터 링크 계층 같은 ..
테스트코드를 작성하기 위해 jest를 설치했다. npm i jest test폴더를 만들고 폴더안에 테스트 코드를 작성하고 jest를 실행했는데 npm test 아래와 같은 노랑이가 나타났다. 테스트를 실행하고 나서 JEST가 종료됐으면 좋겠는데 안꺼지는 상황. 해당 경고문(?)을 살펴봤더니 "Consider running Jest with `--detectOpenHandles` to troubleshoot this issue." 저 옵션이 무엇인고 찾아보자 => JEST --detectOpenHandles Attempt to collect and print open handles preventing Jest from exiting cleanly. Use this in cases where you nee..
🧚🏻♂️ 관심사의 분리 하나의 파일에 모든 코드를 다 작성하는 경우를 스파게티 코드라고 한다. 스파게티 코드의 단점은 하나의 기능만 수정해야하는데 다른 코드들이 연결되어 있어서 영향을 받을 가능성이 크다는 점이다. 코드가 많아지면 가독성이 떨어지는 것도 단점이다. 코드를 역할에 따라 파일을 분리하는 데, 주로 아래와 같은 기준으로 나눈다. HTTP Request/Response 처리 Business Logic 처리 Database 통신 처리 분리된 구조로 코드를 구현하면 코드의 가독성과 확장성이 높아진다. 또 파일에 작성된 코드들의 목적과 범위가 명확하기 때문에 구조를 파악하기에도 용이하다. 이렇게 주된 역할과 집중해야하는 기능을 분리해서 서로 다른 기능을 하는 파일은 신경쓰지 않도록 하는 것을 "Se..
자바스크립트 스터디 2번째 주제는 '실행 컨텍스트'다. 해당 개념은 파이썬을 공부할때도 접해본 적이 없었던 것 같은데.. 더욱 생소하게 다가왔다. 코어 자바스크립트 책을 읽기 전에, 생활코딩과 같은 여러개의 유튜브 영상을 시청하며 감을 잡고 있었는데 우아한 테크코스 테코톡에서 실행 컨텍스트 개념을 아주 잘 설명해줘서 해당 내용을 블로그에 정리해보려고 한다. => 하루의 실행 컨텍스트 🔥 자바스크립트엔진이 코드를 실행하는 방법 1. 자바스크립트 코드를 실행시키면 자바스크립트 엔진은 '콜 스택'이라는 통에 전역 실행컨텍스트를 담는다. 2. 실행 컨텍스트니까 Record와 Outer가 담겨있다. 3. 전역에서 함수 A를 호출하면 함수 A의 실행 컨텍스트를 생성하고 콜 스택에 담는다. 4. 함수 A에서 함수 B..
프로그래밍 패러다임(Programming Paradigm)이란? 패러다임이란 '한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계. 또는 사물에 대한 이론적인 틀이나 체계'를 말한다. 위키피디아에 나온 이 뜻이 너무 어려워 다른 기고를 참고했다. 여기서는 '사물을 보는 방법, 문제를 삼는 방법, 문제를 푸는 방법의 총체'를 패러다임이라 일컫는다. 어떤 시대적 상황이나 현실을 바라보는 여러 종류의 인식의 틀 하나 하나를 패러다임이라고 할 수 있다. 💡 그렇다면 프로그래밍 패러다임이란? 프로그래머가 프로그래밍 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 프로그래밍 하기 위한 방법/전략, 프로그래밍 스타일, 소프트웨어를 "어떻게" 구성해서 코딩할지 생각하는 방법이라 이..
1. KaKao Developers에서 등록하기 https://developers.kakao.com/에서 시작하기 버튼 눌러서 개발자 계정 가입 후, 맨 위 오른쪽의 '내 어플리케이션' 클릭 애플리케이션 추가하기를 누르고, 앱 이름과 사업자명을 입력한다. 생성한 앱 이름을 선택하면, 앱키가 자동 발급된다. 여기서 REST API키는 환경변수로 등록할 예정! 그다음에는 플랫폼으로 이동해서 Web 플랫폼 등록을 누르고 사이트 도메인을 입력한다. 그러면 Web하단에 Redirect URI를 등록하라고 한다. 등록해준다. 카카오 서버에서 어느 주소로 REST API GET요청을 보내줄까? 적는 곳이라고 생각하자. 주소 뒤에 /auth/kakao/callback이라고 적어주자. 나는 포스트맨으로 테스트할 예정이기..
OAuth란? OpenID Authentication의 줄임말로 인터넷 사용자들이 자신의 비밀번호를 제공하지 않고도 다른 웹사이트에 가입한 정보로 해당 애플리케이션에 접근 권한을 부여받을 수 있는 개방형 표준이다. OAuth가 등장하기 전에는 평범하게 id와 password로 진행을 했었다. 그러다 보니 사용자는 서비스 사이트에 내 id와 비밀번호를 공개하는 것에 찝찝함을 느꼈고, 서비스 사이트는 아이디와 비밀번호가 털릴 경우 해당 보안 문제를 모두 책임져야했다. 다른 사이트는 해당 서비스 사이트를 신뢰할 수 없었기에 이에 대한 문제를 해결하고자 2007년 OAuth 1.0 초안이 발표되었고, 현재는 2.0버전이 더 많이 사용되고 있는 상태다. OAuth 2.0 용어 Client : Resource Se..
😭 intro 우왕 머리 뽀개질거같다 ^^ 원래 이런가? 장고로 구현할때는 기본 개념이 머리에 안잡혀서 일주일 걸렸는데.. 개념을 이해했는데 왜 하루만에 끝내지 못하는거지 소셜로그인 어제 도전했다가 다른 사람 코드보고 어우 왜이렇게 왔다갔다해 못하겠다싶어서 포기했는데 어제 밤에 계속 구글링해보니까 하면 할 수 있을 것 같기도 하고..? 그래서 열심히 깨작깨작 여러가지 레포 참고해보면서 작성했는데 포스트맨 통신은 왜 안돼크아아아아아악!!!!! 웹사이트에서 테스트도 계속 삥삥 돌고 왜구래 우아아아아아악!!!!!! 후 - 침. 착. 해. 침. 착. 해. 카카오 소셜 로그인 진행 과정은 아래와 같다. 카카오 인가 코드 받기 (GET /oauth/authorize) redirect url로 인가코드 전달받기 카카..
🐯 intro 오늘은 로그인 기능을 구현했다. 카카오 소셜 로그인 기능도 구현하고 싶었는데 자바스크립트 문법도 모르니까 참고한 블로그들의 코드들이 이해가 안간다. 해당 개념 Oauth도 다시 공부하면서 진행해야겠다. DB에 저장된 아이디인지 검사 아이디가 일치하는 유저의 비밀번호인지 검사 (bcrypt.compare) 모두 일치하면 access token, refresh token 발급 소셜로그인은 조금 더 개념 및 논리를 공부한 다음에, 내일 재도전..!!! 딱 기다려 🐯 쿠키, 세션, 토큰 Stateless한 프로토콜(HTTP)을 stateful한 서비스로 구현하기 위해 사용된다. 매 요청마다 로그인하라 한다면 너무 성가시다. 따라서 누가 로그인 중인지 상태를 기억하기 위해 쿠키,세션,토큰을 사용한..
Rebase 불필요한 여러개의 커밋 메세지를 하나로 squash할 수 있었던 rebase. merge를 사용하면 불필요한 merge commit이 생겼는데, rebase를 사용하면 이를 없앨 수 있다. 실습해보기 디렉토리를 생성하고 main.js파일을 작성한 뒤 아무 코드가 작성해서 add, commit 그리고 push까지 진행했다. 메인에서 새 브랜치 feature/test2를 생성하고, 여러개의 커밋을 만들고 sqush한 뒤에 pr을 올렸다. 근데 이게 왠걸? 커밋내역들은 하나로 합쳐졌는데 merge커밋이 생겨있다. 다시 실습해보자. 먼저 내 로컬과 리모트의 위치가 다르다. main으로 이동해서 pull origin main 명령어를 이용해서 둘의 싱크를 맞춰주자 테스트 브랜치를 생성하고 아무 코드나..