728x90
반응형
SMALL

전체 글 143

[Spring Boot] REST API - GET

* Annotation@RestControllerRESTful 웹 서비스의 컨트롤러임을 선언. @RequestMapping요청을 특정 컨트롤러 클래스나 메서드에 매핑할 때 사용. @GetMappingHTTP GET 요청을 특정 핸들러 메서드에 매핑할 때 사용. 즉, 지정된 URL의 GET 요청을 처리하는 메서드를 정의한다. @PathVariableURL 경로의 일부를 메서드 매개변수로 전달받을 때 사용. 즉, URL 패턴 중 일부를 동적으로 받아서 사용할 수 있다. @RequestParamHTTP 요청의 쿼리 파라미터를 메서드의 매개변수로 바인딩할 때 사용.요청 파라미터의 이름과 메서드 매개변수의 이름이 일치해야, name 속성을 사용하여 다른 이름의 파라미터를 바인딩할 수도 있다. * 실습 세팅  실습..

WEB/Spring Boot 2024.07.12

REST란 무엇인가

* REST(Representational State Transfer, 자원의 상태 전달)자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다. * REST의 조건1. 독립적 클라이언트&서버클라이언트와 서버는 독립적으로 분리되어 있어야 한다. 2. Stateless요청에 대해서 클라이언트의 상태가 서버에 저장되지 않는다. 3. 캐시클라이언트는 서버의 응답을 캐시 할 수 있어야 한다.클라이언트가 캐시를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해 서버의 부하를 낮출 수 있다. 4. 계층화(Layered System)서버와 클라이언트 사이에 방화벽, 게이트웨이, Proxy 등 다계층 형태를 구성할 수 있어야 하며, 확장할 수 있어야 한다. 5. 인터페이스 일관..

WEB 2024.07.11

HTTP란 무엇인가

HTTP(Hyper Text Transfer Protocol)RFC 2616에서 규정된 Web에서 데이터를 주고받는 프로토콜이다.이름은 하이퍼텍스트 전송용 프로토콜로 정의되어 있지만, 실제로는 HTML, XML, JSON, Image, Voice 등에서 모두 전송할 수 있다.   1. 요청- 클라이언트 측클라이언트는 서버에 보낼 요청 메시지를 작성한다. 이 메시지는 서버가 이해할 수 있는 형식으로 구성되어야 하며, 요청하는 리소스나 수행하고자 하는 작업을 포함하고 있다. - 서버 측서버는 클라이언트로부터의 요청을 대기하고 있고, 요청 메시지를 수신 및 해석한다. 2. 응답 - 서버 측요청 메시지를 해석한 후, 요청된 작업을 처리하기 위해 적절한 애플리케이션 또는 서비스를 호출한다.작업이 완료되면, 결과를..

WEB 2024.07.08

[Express] 미들웨어 #2 body-parser, cookie-parser, express-session

body-parser요청의 본문을 해석해서 req.body 객체로 만들어주는 미들웨어로, 주로 폼 데이터나 AJAX 요청의 데이터를 처리한다.멀티파트(이미지, 동영상, 파일) 데이터는 처리하지 못한다. 멀티파트 데이터 처리는 multer 패키지를 사용해야 한다.  // 본문이 버퍼 또는 텍스트 데이터일 때const bodyParser = require('body-parser')app.use(bodyParser.raw());app.use(bodyParser.text()); 익스프레스 4.16.0 버전부터 body-parser 미들웨어의 일부 기능이 내장되었으므로 따로 설치할 필요가 없지만,Raw(버퍼데이터)나 Text 형식의 데이터를 해석해야 하면 body-parser를 설치하고 위 코드를 추가하면 된다...

Express란 무엇인가(+ 미들웨어)

Express란?http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고 확장성도 떨어질 때 프레임워크로 해결한다.Express는 Node.js의 대표적 웹 프레임워크이다. Express-generator로 설치express-generator는 express 구조를 빠르게 갖추어 주는 패키지이다.express-generator 패키지 전역 설치    모든 취약점 해결  - bin/www: 서버를 실행하는 스크립트- public: 외부에서 접근 가능한 파일들- routes: 서버의 라우터와 로직들, 추후 데이터베이스에 사용- views: 템플릿 파일들- app.js: 핵심 서버 스크립트  Express 서버 실행  콘솔에 클라이언트가 보낸 요청이 기록된다.    미들웨어란? 익스프레스는 미들웨어로 구성된..

npm이란 무엇인가

npm(Node Package Manager)이란 무엇인가npm은 다른 사람들이 만든 소스 코드들을 모아둔 저장소로, 다른 사람이 만들어놓은 기능을 사용할 수 있기 때문에 다시 구현할 필요가 없어서 효율적이다.npm에 업로드된 노드 모듈을 패키지라고 하며, 패키지가 다른 패키지를 사용할 수 있는 ‘의존 관계’를 이루고 있다. package.json현재 프로젝트에 대한 정보와 사용 중인 패키지에 대한 정보를 담은 파일이다.'npm init'을 하면 폴더에 package.json 파일이 자동 생성된다.- package name: 패키지 이름, package.json의 name 속성에 저장됨- version: 패키지 버전- entry point: 자바스크립트 실행 파일 진입점, package.json의 mai..

[JavaScript] Callback Hell, Promise, async/await

* Callback hell프로미스를 알기 위해서는 콜백 헬을 알아야 한다. 콜백 헬은 비동기적으로 동작하는 자바스크립트 코드에서 나타나는 문제 중 하나로, 콜백 안에 콜백을 사용하는 형식이다.비동기 작업 시 콜백함수를 사용하는데, 콜백함수가 중첩되면 코드가 복잡해지고 가독성이 떨어지는 것을 Callback hell이라고 한다. (콜백함수와 비동기식 작업은 이전 글에 정리해 두었다.)2024.03.18 - [Back-End/Node.js] - Node.js의 정의, 특성, 역할 콜백 헬을 해결하는 방법에는 Promise(프로미스)와 Async/wait이 있다. * Promise(프로미스)콜백 헬을 해결하는 방법 중 하나로, 자바스크립트 비동기처리에 사용되는 객체이다. 프로미스는 비동기 작업이 성공적으로 ..

[JavaScript] 화살표 함수, this, 비구조화 할당

* 화살표 함수(arrow function)화살표 함수는 function 선언 대신 => 기호로 함수를 선언한다. function으로 함수 선언// 화살표 함수가 아닌 function으로 함수 선언function add(x, y) {    return x + y;} function으로 함수를 선언한 이 코드는 화살표함수 3가지 형태로 나타낼 수 있다. 화살표 함수로 함수 선언 1// function 대신 화살표로 함수 선언, 재사용하기 위해 변수에 대입const add = (x, y) => {    return x + y;}; function 대신 => 기호로 함수를 선언하였고, 재사용을 위해 const로 변수에 대입하였다. 화살표 함수로 함수 선언 2// 중괄호 대신 return할 식 바로 적기cons..

[Node.js] 파일 시스템

* fs 파일 시스템에 접근하는 모듈이다.fs 모듈로  파일 및 폴더 생성/삭제/읽기/쓰기 모두 가능하다. const fs = require('fs');  // fs 모듈 불러옴// fs.writeFile(file, data, options, callback)로 파일 쓰기fs.writeFile('./writeme.txt', '글이 입력됩니다.', (err) => {    if(err){  // 오류 발생 시 처리        throw err;    }    // fs.readFile(file, options, callback)로 파일 읽기    fs.readFile('./writeme.txt', (err, data) => {        if (err) {  // 오류 발생 시 처리           ..

[Node.js] 내장 모듈 #2 - url, searchParams, 암호화

* url 모듈인터넷 주소를 쉽게 조작하도록 도와주는 노드 내장 모듈이다. url 처리 방식에는 가존 노드 방식과 WHATWG(WHAT Working Group) 방식이 있다. 기존 노드 방식 메서드1. url.parse(주소)주소를 분해한다.WHATWG 방식과 비교하면, username과 password 대신 auth 속성이 있고, searchParams 대신 query가 있다. 2. url.format(객체)분해된 url 객체를 다시 원래대로 조립한다.WHATWG 방식에서도 사용가능하다.   const url = require('url');  // url 모듈 불러옴const { URL } = url;  // url 모듈로부터 URL 클래스 가져옴console.log('----------WHATWG ..

728x90
반응형
LIST