- Today
- Total
목록전체 글 (319)
개발하는 고라니
저번 포스팅에서 app.get , app.post , app.use ...와 같이 사용되어지는 미들웨어를 썼다. 이는 어플리케이션 단에서 동작하는 미들웨어이다. 다음과 같이 미들웨어는 몇 가지의 종류가 존재한다. Application Level Middelware Router Level Middleware Error Handling Middelware Built in Middelware Third party Middleware # Application Level Middleware 2021/01/08 - [Programming/Node.js] - [Node.js] Middleware 생성 [Node.js] Middleware 생성 이전에 Body-parser라는 어떤 고마운 분이 만들어준 미들웨어를 사용..
이전에 Body-parser라는 어떤 고마운 분이 만들어준 미들웨어를 사용해보았다. 그런데 신기하게도, request에 body라는 property가 없었는데 어떻게 생긴걸까? 간단한 미들웨어를 만들어며 알아보자. Express의 Guide탭 중에 'Writing Middleware'라는 항목을 보면, 다음과 같은 예시가 있다. var express = require('express') var app = express() var myLogger = function (req, res, next) { console.log('LOGGED') next() } app.use(myLogger) app.get('/', function (req, res) { res.send('Hello World!') }) app.l..
Node.js는 보편적으로 'Express'라는 웹 프레임워크를 사용한다. 최근 'koa'의 사용빈도도 증가추세이다. 'koa'는 'Express'를 개발한 사람들이 모종의 이유로 새로이 만든 프레임워크로 알고있다. 그래서 사용방법도 거의 비슷하다고 볼 수 있다. Express, koa같은 웹 프레임워크가 무엇인지에 대해서는 나중에 다시 포스팅 하기로 하고... 오늘은 node.js에서 로 보낸 데이터를 사용해보는 방법을 익힌다. 'body-parser'를 사용하기 전엔 다음과 같은 방법을 사용했다. '/create'라는 URL로 id와 비번을 보내 회원가입을 하는 작업을 예를 들어보자. 제출 const express = require('express'); const qs = require('qs'); ..
Browser에서 Server로 파일을 업로드 할 때, 취지에 맞지 않는 파일을 제한해야 할 때가 있다. 예를 들어 영화 포스터 이미지 파일(jpg, png 등) 만 업로드 해야한다면 방법은 다양할 것이다. 정규식으로 제어할 수도 있고, 서버 단에서 제어할 수도 있다. 이번에는 뷰 단에서 자바스크립트를 이용해 간단한 방법으로 이미지 파일만 전송되도록 한다. Upload 파일 업로드는 HTML의 태그를 이용할 수도 있지만 ajax를 사용하여 데이터를 보낸 후 처리했다. 에 여러 파일을 입력해서 업로드 후 콘솔 로그를 보면 전송한 파일의 정보가 찍힌다. 1111.png와 abc.txt 파일을 업로드 한 결과이다. 위와 같이 File의 정보들을 Javascript 객체에 담아 받아볼 수 있다. 이 중에서 't..
교재를 보며 ajax로 파일 업로드를 테스트하는데... $("input[name='aaa']") 이런 $ 를 사용하는 것은 다 되는데 $.ajax에만 오류가 발생하였다. 물론 Jquery CDN을 추가하였다. 근데도 왜 이러지 구글링해보다가 근데도 여전히 오류가 발생했다. 여기저기 소스코드를 들춰내며 대체 뭐가 문제인가 하고 마지막 즈음 브라우저의 소스를 봤는데 여전히 slim 버전 cdn을 가져오는 것이었다. ?????????????????????????????????????????????????????????? 난 분명히 바꿨는데? 아차 싶었다... 이클립스에서는 view 페이지가 변경되면 서버를 재시작하지 않아도 자동으로 반영해주지만, IntellJ는 추가적으로 설정을 해줘야 한다. 망치 아이콘 옆..
학교 수업에서도 시간관계상 배우지 않고 건너뛴 스트림, 람다 등 내용을 공부해야지... 미루고 미루다 코드로 배우는 스프링 부트 웹 프로젝트 책으로 공부하는데 스트림을 모르면 쓸 수 없는 표현들이 나오길래 이제야 스트림에 대해 알아보는 시간을 갖는다. 자바 스트림은 기존 코드(for, foreach... 등)에 비해 간편하고 명료하며 직관적이지만, 스트림에 대해 알 때의 이야기이다. 또한 스트림은 불필요한 리소스를 줄여준다. # Stream * 파일에 쓰이는 InputStream, OutputStream 같은 I/O 스트림은 아니다 자바 8부터 추가된 자바 스트림은 - 추가된 컬렉션의 저장 요소를 하나씩 참조해 람다식으로 처리할 수 있도록 해주는 반복자이다. - 자바 8 이전에 배열or컬렉션을 다루는 방..
//플러그인 추가 plugins { id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } //의존성 주입 dependencies { implementation 'com.querydsl:querydsl-jpa' } //Gradle에서 사용할 추가적인 task def querydslDir = "$buildDir/generated/querydsl" querydsl{ jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations{ querydsl.extendsFrom compileClasspath } compileQuerydsl{ opti..
# ORM과 JPA - JPA(Java Persistence API) Java Persistence API의 약자로 Java 언어를 통해 DB와 같은 영속 계층을 처리하고자 하는 스펙이다. JPA를 이해하기 위해 ORM(Object Relational Mapping)이라는 기술을 선행해야 한다. ORM을 Java 언어에 맞게 사용하는 '스펙'이다. 따라서 ORM이 조금 더 상위 스펙이되고, JPA는 Java 언어에 국한된 개념이라고 볼 수 있다. JPA는 단순한 스펙이기 때문에 해당 스펙을 구현하는 구현체마다 회사의 이름이나 프레임워크의 이름이 다르게 된다. 다양한 프레임워크가 있지만 가장 유명한 것은 'Hibernate'이다. 기존 EJB에서 제공되던 Entity Bean을 대체하는 기술이다. ORM이..