전체 글 219

RestController와 Controller의 용도 차이.

Rest방식이 무엇인지는 몇주 전에 찾아보았던것 같은데 그냥 글로만 읽고 아 그런거구나 하고 지나갔었다. 프로젝트를 진행하게 되면서 Controller단을 만들어야 하는 경우가 생겼는데. 이때 RestController와 Controller의 차이를 명확하게 알지 못해서 꽤 인터넷을 헤메고 다녔었다. Controller는 view페이지로 페이지를 redirect시키거나 반환하는 역활을 해주는데 RestController는 맵핑된 url로 접속하게 되면 view가 하나도 없이 RestController로부터 전달받은 데이터만 String형태로 페이지에 쭉 적혀있을 뿐이었다. 내가 웹서핑과 뇌피셜로 내린 결론은 이것이다. 1. RestController는 ajax나 fetch, axios같은 통신으로 요청을..

피셔 예이츠 셔플

const hor = parseInt(document.querySelector('#hor').value); const ver = parseInt(document.querySelector('#ver').value); const mine = parseInt(document.querySelector('#mine').value); console.log(hor,ver,mine); let minelist = Array(hor*ver) //가로 +세로의 크기만큼 배열생성 .fill() //배열을 undefine으로 채움 .map((element,idx)=>{ //map을 이용해 모든 배열에 각각의 idx +1만큼을 대치시켜줌) return idx+1; }); let suffle = []; while(minelist...

JS/제로초 JS 2021.04.29

3-1. window 객체

window 객체는 기본적으로 브라우저가 제공하기때문에 우리가 생성하지 않아도 존재한다. window객체에서 화면을 담당하는 객체는 document객체이다 ( window['document'] ) (윈도우는 브라우저, document는 하나의 탭, 페이지라고 생각하면 된다.) window는 브라우저 전체를 담당한다. alert()는 window.alert인데 window는 생략할 수 있다. window는 모든곳에서 접근이 가능하기 때문에 전역객체이다.

JS/제로초 JS 2021.04.29

1. 변수 primitive 타입과 object의 차이점

//담을 수 있는 가장 작은단위의 애들을 primitive type data라고 한다 (number,String,boolean, null, undefined) let number = 2; let number2 = number; //number에 있는 data를 number2에 복사해서 가져온다(각각독립됨) console.clear(); //object let obj = { name:"ellie", age:5, }; console.log(obj.name); let obj2 = obj; //obj가 가지고있는 주소가 obj2에 복사됨 console.log(obj2.name); obj.name = 'james'; console.log('--------------') console.log(obj.name); c..

13. 비동기의 꽃 JavaScript async 와 await 그리고 유용한 Promise APIs

// async & await // promise의 깔끔한 타입!! //1. async async function fetchUser(){ //함수앞에 'async'를 써주면 함수의 return으로 new Promise를 쓰지 않아도 자동으로 입력한것처럼 처리해준다 //네트워크통신을해서 10초정도 걸리는중.... return 'ellie' } const user = fetchUser(); user.then(console.log); console.log(user); //비동기처리를 하지않으면 JS는 동기적으로 처리한다.(로딩이 길다면 사용자는 오래 기다려야한다.) //2. await function delay(ms){ return new Promise (resolve =>setTimeout(resolve,m..

12. 프로미스 개념부터 활용까지 JavaScript Promise

'use strict' //프로미스는 비동기통신에서 콜백함수 대신 유용하게 사용할 수 있는 오브젝트이다 //기능수행이 완료되고 성공했는지 실패했는지에 대해서 아는게 중요 -- state //produce와(제공자) consumer의 차이점에 대해서 아는게 중요하다(데이터 제공에 대한) //state : 오퍼레이션이 수행중일때는 pending상태라고한다. // ->오퍼레이션이 다 끝나게되면 fulfilled 상태가 된다/ 또는 rejected //Producer vs Consumer //1. Producer //when new Promise is created, the executor runs automatically. const promise = new Promise((resolve,reject)=>{ ..

11. 비동기 처리의 시작 콜백 이해하기, 콜백 지옥 체험

'use strict' //var선언이나 function같은것들을 선언하면 자동적으로 가장위에서 선언된것처럼 되는것을 호이스팅이라고 한다. console.log('1'); setTimeout(()=>{console.log("2")},1000); //callback함수를 n초 후에 실행시켜줘 console.log('3'); //Synchronous callback function printImmediately(print){ print(); } printImmediately(()=>{console.log('hello')}); //Asynchronous callback function printWithDelay(print,timeout){ setTimeout(print,timeout); } printWithD..

테스트코드 작성

TDD (Test Driven Develop) :테스트코드부터 작성하는 개발방식 ​ Unit Test(단위테스트) : TDD의 첫번째 단계인 기능단위의 테스트 코드를 작성하는 것. (그냥 테스트코드를 작성하는 그 자체를 의미함.) ​ -단위테스트를 하는 이유 1. 개발초기에 문제발견 2. 리팩토링이나 업그레이드때 기존기능을 확인가능 3. 기능에대한 불확실성 감소 4. 실제 문서제공(테스트문서제공) 5. 확인때 서버를 계속껏다켯다 안해도 됨(시간절약) 6. print를 통해 인간이 눈으로 확인할 필요가 없음 (자동으로 체크해주니까) ​ 1. 테스트코드 작성해보기 package com.jojoIdu.book.springboot; import org.springframework.boot.SpringApplic..