Study 104

Node.js 시멘틱 URL

생활코딩 Node.js 강의를 들으며 정리한 내용을 올립니다. web2강의에서는 쿼리스트링으로 웹페이지를 만들었다. 그런데 강의내용대로 코드를 작성하니 vscode에서 쿼리스트링에 취소선이 그어져 있었다. https://nodejs.org/api/documentation.html#stability-index 여기에 들어가서 쿼리스트링을 찾아보면 이렇게 표기되어있다. 레거시이므로 권장되지 않고 다른 기능을 사용하라는 것 같다. 그렇다면 다른 기능이 무엇일까? 바로 시멘틱URL(Semantic URL)이다. 먼저 쿼리스트링에 대해 알아보자. http://a.com/topic?id=1 http://a.com/topic?id=2 http://a.com/topic?id=3 위의 세 주소는 topic 이라는 같은 ..

Study/Node.js 2022.09.06

자바스크립트의 객체지향 - 상속

생활코딩 자바스크립트 강의를 보고 정리한 포스팅이다. function Person(name){ this.name = name; } Person.prototype.name=null; Person.prototype.introduce = function(){ return 'My name is '+this.name; } function Programmer(name){ this.name = name; } Programmer.prototype = new Person(); var p1 = new Programmer('egoing'); document.write(p1.introduce()+" "); p1 = new Programmer('egoing')으로 생성자를 만들었다. 그리고 이 생성자의 prototype과 Pe..

Study/JavaScript 2022.08.28

이것이 코딩 테스트다 - 그리디(거스름돈, 큰 수의 법칙)

최근 알고리즘 문제를 무작정 풀고 모르면 답을 보고 다음에도 비슷한 유형이 나오면 같은 방식으로 풀고... 하는 식으로 하다가 문제 유형을 먼저 공부해야 한다는 의견을 들어서 알고리즘 관련 서적을 구입했다. 책에 나온 코드는 파이썬으로 되어있지만 깃헙에 자바 코드도 올라와 있어서 참고하면서 풀어보기로 했다. 그리디 - 단순하지만 강력한 문제 해결 방법 - 현재 상황에서 지금 당장 좋은 것만 고르는 방법 - 매 순간 가장 좋아보이는 것으로 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다 거스름돈 계산 문제 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 주어야 할 돈이 N원일 때 거슬러 주어야 할 동전의 최소 개수를 구하..

Study/알고리즘 2022.08.26

자바스크립트의 객체지향

생활코딩 자바스크립트 강의를 듣고 정리한 포스팅이다. var person = {} {} 로 빈 그릇(오브젝트, 객체)를 생성한다. var person = {} person.name = 'egoing'; person.introduce = function(){ return 'My name is '+this.name; } document.write(person.introduce()); 객체 내의 변수를 프로퍼티라고 한다.(name, introduce) 프로퍼티에 담긴 함수는 메소드라고 한다. (function(){}) 위 함수에서 this는 해당 함수가 속해있는 객체({})에 담겨있는 객체(name=egoing)이다. var person = { 'name' : 'egoing', 'introduce' : fun..

Study/JavaScript 2022.08.26

값으로서의 함수와 콜백

생활코딩 자바스크립트 강의를 보며 정리한 포스팅이다. JavaScript에서는 함수도 객체=값이다. function cal(func, num){ return func(num) } function increase(num){ return num+1 } function decrease(num){ return num-1 } alert(cal(increase, 1)); alert(cal(decrease, 1)); 함수는 값이 되기도 하기 때문에 다른 함수의 인자가 되기도 한다. function cal(mode){ var funcs = { 'plus' : function(left, right){return left + right}, 'minus' : function(left, right){return left - ..

Study/JavaScript 2022.08.25

유효범위(Scope)

인프런에서 생활코딩 강의를 보며 정리한 포스팅이다. 유효범위(Scope)는 변수의 수명을 의미한다. var vscope = 'global'; function fscope(){ alert(vscope); } fscope(); 결과는 당연히 global이다. var vscope = 'global'; function fscope(){ var vscope = 'local'; alert(vscope); } fscope(); (띄어쓰기가 이상한데 넘어가자 ㅠ) 만약 이렇게 되어 있다면 결과는 어떻게 나올까? 이 경우에는 local로 출력된다. fscope라는 함수 안에 vscope라는 변수가 선언되었기 때문에 함수 내에 정의된 vscope를 출력하는 것이다. 전역변수 - 함수 바깥에 있는 변수 지역변수 - 함수 안..

Study/JavaScript 2022.08.25

jQuery

면접을 몇군데 다녀왔는데 필기 문제에 jQuery가 나오는 곳들이 몇군데 있어서 jQuery공부의 필요성을 느꼈다. jQuery는 예전 프로젝트에서 좋아요 기능을 구현할 때 사용한 코드를 봤던 것 외에는 접해본 적이 없어서 우선 생활코딩 자바스크립트 강의에 있는 jQuery 강의를 보고 정리했다. jQuery 엘리먼트를 선택하는 강력한 방법과 선택된 엘리먼트들을 효율적으로 제어할 수 있는 다양한 수단을 제공하는 자바스크립트 라이브러리 DOM을 내부에 감추고 보다 쉽게 웹페이지를 조작할 수 있도록 돕는 도구이다. DOM(Document Object Model) Document : 문서Object: 객체Model: 데이터 문서 정보를 자바스크립트 객체의 형태로 만든 특정한 데이터 형태(트리구조) HTML문법..

Study/JavaScript 2022.08.24

자바스크립트 배열 정리

생활코딩에서 자바스크립트 강의를 들으며 정리한 내용이다. 배열의 생성 var member = ['egoing', 'k8805', 'sorialgi'] 대괄호 안에 데이터를 넣고 콤마로 구분한다. alert(member[0]); 을 입력하면 'egoing'이 경고창으로 출력된다. function get_members(){ return ['egoing', 'k8805', 'sorialgi']; } members = get_members(); // members.length는 배열에 담긴 값의 숫자를 알려준다. for(i = 0; i < members.length; i++){ // members[i].toUpperCase()는 members[i]에 담긴 문자를 대문자로 변환해준다. document.write(..

Study/JavaScript 2022.08.22

백준 1267번 - 핸드폰 요금 JAVA

fee[i]/30 하고 +1 해야 한다는걸 검색하고서야 알게 되었다. ㅠ 1. 처음 주어지는 N을 두번째 주어지는 통화시간 배열의 개수라고 생각하고 그만큼 for문을 돌려 배열 안에 통화시간들을 담는다. 2. 영식 요금제와 민식 요금제의 식에 맞춰 각각의 값에 맞는 가격을 계산하여 더한다. 3. 두 값의 대소를 비교하고 양식대로 출력한다. public class Main { public static void main(String[] args) throws Exception{ Scanner in = new Scanner(System.in); int Y = 0; int M = 0; int N = in.nextInt(); int fee[] = new int [N]; for(int i=0; i

Study/알고리즘 2022.08.20

스프링 프로젝트 - 게시판 만들기 1(SQLplus DB생성, lombok설치)

프로젝트를 했을 때 maven으로 게시판을 만들었지만 꽤 시간이 지나기도 해서 다시 만들면서 복습해보기로 한다. 프로젝트 이름을 입력하고 Spring Legacy Project -> Spring MVC Project를 선택한다. 컨트롤러의 경로를 입력해준다. 그러면 이렇게 폴더와 파일이 생성된다. 사실 dto를 적고 있던 도중에 블로그에 올리자고 생각했던 거라서 이미 만들어져 있지만.... dto/model/service패키지는 따로 만들어줘야 한다. pom.xml세팅은 com.oracle ojdbc8 18.0.0 org.mybatis mybatis 3.2.3 org.mybatis mybatis-spring 1.2.2 commons-io commons-io 2.5 commons-fileupload com..

Study/spring 2022.08.12