copyOf() 메소드 전달받은 배열의 특정 길이 만큼을 새로운 배열로 복사하여 반환한다. 이때 새로운 배열의 길이가 원본 배열보다 길면, 나머지 요소는 배열 요소의 타입에 맞게 기본값으로 채워진다. 예) int - 0, boolean - false, char - '\u0000' int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = Arrays.copyOf(arr1, 3);//Arrays.copyOf(원본 배열, 복사할 요소 개수) //1 2 3 int[] arr3 = Arrays.copyOf(arr1, 10);//복사할 요소 개수가 원본보다 큰 경우 //1 2 3 4 5 0 0 0 0 0//기본값으로 채워짐 copyOf() 메소드 전달받은 배열의 특정 범위에 해당하는 요소만을 새..
Iterator 인터페이스 자바의 컬렉션 프레임워크는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있다. Collection 인터페이스를 상속받은 List와 Set 인터페이스에서 iterator() 메소드를 사용할 수 있다. Iterator 인터페이스 메소드 boolean hasNext() : 해당 iteration이 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환한다. E next() : iteration의 다음 요소를 반환한다. default void remove() : 해당 iterator로 반환되는 요소를 현재 컬렉션에서 제거한다. ArrayList arrList = new ArrayList(); arrL..
Arrays 주요 메소드 Arrays.asList(array) : List 타입으로 변환 Arrays.equals(array1, array2) : 두 배열이 일치하는지 검사 Arrays.sort(array) : arr을 오름차순으로 정렬 String[] arr1 = {"A", "B", "C"}; String[] arr2 = {"D", "E", "F"}; System.out.println(Arrays.toString(arr1));//[A, B, C] //Arrays.asList(array) List arrlist = Arrays.asList(arr1); System.out.println(arrlist);//[A, B, C] //Arrays.equals(array1, array2) System.out.pri..
1. Jade Template으로 form 화면 만들기 doctype html html(lang="en") head meta(charset="UTF-8") body form(action='/form_receiver' method='post') P input(type='text' name='title') P textarea(name='description') P input(type='submit') 2. "/form" 과 "/form_receiver" 라우터 작성 const express = require('express'); const app = express(); const port = 3000; //POST 방식으로 전송한 데이터 사용 app.use(express.urlencoded({ extende..
Querystring이란? http://localhost:3000/topic?id=1 위 주소의 전체를 URL이라 하고 '?' 뒤에 나오는 'id=1' 과 같은 부분을 쿼리스트링이라 한다. Querystring 이용 방법 app.get('/topic', (req, res) => { res.send(req.query.id);// 1 }); req.query를 이용해서 값을 얻는다. "/topic?id=1"에서 id와 "req.query.id"에서 id가 일치해야 값을 읽을 수 있다. 소스코드 app.get('/topic', (req, res) => { var topics = [ 'Javascript is ...', 'Nodejs is ...', 'Express is ...' ]; var output = `..
1. Underscore 객체 생성 var _ = require('underscore'); 2. 배열 생성 var arr = [3,6,9,1,12]; 3. 배열 값 호출 예제 console.log(arr[0]); //배열의 첫번째 값 호출 //결과: 3 console.log(_.first(arr)); //underscore를 이용해서 배열의 첫번째 값 호출 //결과: 3 console.log(arr[arr.length - 1]); //배열의 마지막 값 호출 //결과: 12 console.log(_.last(arr)); //underscore를 이용해서 배열의 마지막 값 호출 //결과: 12 참고 www.inflearn.com/course/nodejs-%EA%B0%95%EC%A2%8C-%EC%83%9D%E..
Hello World 출력 1. 설치 과정 생략 2. webserver.js 작성 const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); 3. cmd(터미널)에서 webserver.j..
*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. 해결 방법 1. cmd(명령프롬프트) 실행 2. netstat -ano 입력 3. PID 확인 4. taskkill /pid PID /f 입력 예) taskkill /pid 1036 /f
증상 서버에서 파일을 읽어오다가 실패하면서 console에 "net::ERR_CONTENT_LENGTH_MISMATCH 200" 출력 원인 서버에서 읽어오는 파일의 크기와 Header에 설정된 파일의 Content-Length의 크기가 달라서 발생 해결 upload 할 때 파일 크기를 추출해서 DB에 저장한다. @PostMapping("/uri") public String upload(@RequestParam("file") MultipartFile file) { Object obj = new Object(); obj.setFileSize((int) file.getSize());//MultipartFile의 getSize() 메소드로 파일 크기를 추출한다. service.insert(obj);//추출한 파..
Controller @PostMapping("/login") public String login( @RequestParam(name="email", required=true) String email, HttpSession session, ModelMap modelMap ){ if("myEmail@seogineer.com".equals(email)) { //로그인 정보를 session.setAttribute(key, value)로 등록시켜준다. session.setAttribute("isLogin", true); session.setAttribute("email", email); } } //session.getAttribute(key)로 session에 저장된 값을 읽을 수 있다. if(session.ge..