
💥 프로그래밍 언어· 언어란 사람과 사람간의 통신 수단 · 컴퓨터 언어란 사람과 컴퓨터 간의 통신 수단💥 프로그래밍 언어의 종류· 저급 언어(기계 중심) - 기계어 - 어셈블리어· 고급 언어(인간 중심) - C언어 - C++ - 자바 - 자바스크립트 - C# - 기타 등등💥 프로그래밍 작성과정1) 설계 - 머리속으로 구상한 것을 기록하는 것 - 요리의 레시피를 만드는 작업2) 원시코드 작성 - 머리속으로 구상한 것을 기록하는 것 - 요리의 레시피대로 요리하는 과정3) 컴파일 - 원시코드는 사람이 이해하는 언어이지 컴퓨터 언어가 아니다. - 컴파일은 소스코드를 이진코드로 변환하는 과정, 즉, 컴퓨터가 이해할 수 있는 언어로 변환한다.4) 링크 - 실행 파일을 만드는 과정 ?..

2025.01.06 - [웹 개발 공부하기] - [01.06] flow control의 이해👏💥 객체(Object)속성을 가진 독립적인 개체(entity) = 속성(property)으로 구성된 짖ㅂ합자바스크립트는 객체기반의 프로그래밍 언어 = 자바스크립트를 구성하는 대부분이 객체 객체(Object) - 속성(Property)속성은 키와 값 사이의 연결관계 (key-value)객체의 속성은 JavaScript의 변수와 유사한데, 객체에 속해있음속성 접근 방법 - 마침표 표기법 : objectName.propertyName - 대괄호 표기법 : objectName["propertyName"]속성에는 값 뿐만아니라 함수도 할당 가능 - method : 객체에 속해있는 함수를 method라고 함 객체(Ob..

💥 flow control(제어흐름, 흐름제어)명령형 프로그램의 개별 명령문, 명령 또는 함수 호출이 실행되거나 평가되는 순서 1) goto : 다른 구문에서 시작 -> 개발 설계의 오류를 발생시킬 수 있음 2) choice : 일부 조건이 충족되는 경우에만 일련의 명령문 실행 -> if-else문, switch문 3) loop : 어떤 조건이 충족될 때까지 일련의 명령문을 0회 이상 실행 -> Collection loop, General loop 4) continue : 현재 실행 구문에서 떨어진 한 구문의 집합을 실행 -> Loop continuation 5) break : 프로그램 실행을 중단 -> Loop early exit, 함수 실행 정지..

💥 JavaScript 언어의 특징1. 인터프리터 언어 - 사람이 코드를 작성한다 - 기계에서 실행한다 - 변환하며 진행한다. 2. 동적 타입 언어 - 변수에 들어가는 값에 따라서, 런타임에 타입이 추론된다. 3. 일급객체 - 함수는 일급객체의 특징을 가짐. - 함수는 객체와 동일하게 사용 가능 - 함수는 값과 동일하게 취급 4. 프로토타입 기반의 상속 - 언어가 갖고 있는 프로토타입 체이닝 구조를 통하여 상속이 가능 5. 여러 프로그래밍 패러다임 지원 - 명령형 프로그래밍 - 함수형 프로그래밍 - 객체지향 프로그래밍 , ... 💥 변수: 데이터를 담아둔 메모리의 주소를 쉽게 식별하기 위한 붙인 이름 - 3단계를 거쳐 생성되는 변수 (선언 > 초기화 > 할당) 1. 선언 단계 : 변수를 변수 객체에..

2024.12.27 - [웹 개발 공부하기] - [12.27] 좋아요 추가 API 에 jwt 구현 해보기😲 jwt를 사용하다보면 가끔 만나는 오류이다.하지만 500 에러인 만큼 백엔드에게 치명적인 오류이다...500 에러는 그냥 무조건 백엔드 탓이기 때문이다 😂그러니 절대 절대 만나면 안될... 그런 오류다 ㅠㅠ500 에러가 떴다고 해서 서버가 꺼지진 않는다. 그래도.. 사용자가 만나면 굉장히 당황할 만한 그런 에러이다. jwt expired를 알아보기 위해, 유효기간이 1분인 토큰을 발행해서 검증을 해보았다.TokenExpriedError 라고 적히고, jwt expired 라는 오류가 뜬다.그리고 무시무시한 500 에러가 뜬다.말 그대로.. 유효기간이 지난 Token이야. 못 받아줘! 라는 것이다..

원래 좋아요 추가 API엔 jwt 를 제외하고 로직을 짰었다.이번엔 jwt 구현까지 해보려한다.우선, 가장 상단에 jwt 를 require 해주고, dotenv역시 같이 require 해준다.그 이후, dotenv.config();를 적어준다. 그 다음, req가 Authorization으로 jwt를 보내줘야 한다.let receivedJwt = req.headers["authorization"];console.log("received jwt : ", receivedJwt); req의 header에서 authorization 으로 꺼낸다.꺼내면 jwt가 튀어나올 것이다. 이것을 receivedJwt 라는 변수에 담아줄 것이다.console창으로 확인을 해보기 위해 console.log도 찍어줬다. 그 이..

2024.12.18 - [웹 개발 공부하기] - [12.18] 결제(주문)하기 API 구현해보기🤔2024.12.19 - [웹 개발 공부하기] - [12.19] 논 블로킹 I/O 때문에 순서가 바뀐다고?🤔2024.12.19 - [웹 개발 공부하기] - [12.19] async&await으로 순서를 조종해보자📢2024.12.20 - [웹 개발 공부하기] - [12.20] 결제(주문)하기 API 진짜 끝 진짜 진짜 끝!!🤣 드디어 결제(주문)하기 API가 끝났으니, 주문 목록(내역) 조회 API와 주문 상세 조회 API 를 해보려한다.일단 Method가 GET 인 만큼 엄청 어려운 편은 아니라 금방 끝날 것 같다.조회인 만큼 sql은 SELECT가 될 거고, orders 테이블과 delivery 테이블..

2024.12.18 - [웹 개발 공부하기] - [12.18] 결제(주문)하기 API 구현해보기🤔2024.12.19 - [웹 개발 공부하기] - [12.19] 논 블로킹 I/O 때문에 순서가 바뀐다고?🤔2024.12.19 - [웹 개발 공부하기] - [12.19] async&await으로 순서를 조종해보자📢 이제 코드를 전체 다 주석을 풀고 async&await을 사용한 만큼 사용법에 맞게 코드를 어느정도 수정한 후,테스트를 해보기 위해 돌려봤다!Could not get response 가 떴다.역시 한 번에 잘 되리란 법은 없군.. 하고 콘솔창을 좀 보러갔다.뭐시기저시기.. undefined 다. 라는 것 같은데...[results] = await conn.query(sql, [values]); ..

2024.12.19 - [웹 개발 공부하기] - [12.19] 논 블로킹 I/O 때문에 순서가 바뀐다고?🤔 node.js의 특징 때문에 순서가 바뀔 수도 있다는 것을 알게되었다.그래서 undefined가 나왔군.. 잡았다 요놈! 그럼 지금까지 쓴 conn.query를 promise 객체로 감싸주면 되겠군... 이라고 생각했지만구글링을 해보니 생각보다 promise 객체를 사람들이 안...쓴다?엥? 그럼 async&await을 어떻게 쓰는거지? ;; 싶었다. 사실 mysql에서는 쿼리를 promise 객체로 제공을 할 수 있었다.promise 객체로 따로 안 감싸도 모든 쿼리가 promise 객체로 감쌀 수 있는 방법이 있다.그건... npmjs.com 에서 아주 잘 알려주고 있다😀 많은 방법 중 내가..

2024.12.18 - [웹 개발 공부하기] - [12.18] 결제(주문)하기 API 구현해보기🤔 어제 했던 결제(주문)API 에서 문제가 발생했다!테스트하면서 이전에 테스트한 conn.query는 주석으로 바꿔놓고 테스트를 했었다.그래서 주석을 다 풀고 한 번 포스트맨을 돌려봤더니...400 Bad Request가 떴다...그리고 워크벤치를 확인해봤더니.. delivery 테이블의 데이터만 잘 들어간 걸 확인할 수 있었다.let delivery_id;let order_id;let sql = `INSERT INTO delivery (address, receiver, contact) VALUES (?, ?, ?)`;let values = [delivery.address, delivery.receiver,..