목록입사후 공부한내용 (52)
봉봉의 개인 블로그
준비물 Intellij Docker jar file Jar File 실행 시킬 jar file 을 하나 준비한다. spring boot project 로 준비 하였다. build tool 은 gradle 을 사용하여 jar 파일을 준비하였고, api 서버를 띄워서 테스트하는걸로 하였다. Controller package com.example.springdebug.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DebugController { @GetMapping("..
Pycharm 은? Pycharm 은 나무 위치에서 아래와 같이 설명하고 있다. 다른 젯브레인즈사의 IDE처럼 기본적인 부분은 IntelliJ IDEA에 기반을 두고있다. 현용 파이썬 개발 툴 중에서는 가장 높은 완성도를 지니고 있기 때문에[1] 많이 쓰이는 편이다. 2020-05-28 일기준 PyCharm은 커뮤니티 에디션(무료)과 프로페셔널 에디션(유료, $8.9/월 또는 $89/년)으로 나뉜다.[3] PyCharm 역시 인텔리제이 아이디어 처럼 커뮤니티 버전은 오픈소스로 되어있다. 커뮤니티 버전은 인텔리제이와 비슷하게 제한되는 기능이 있으며[4] 파이참 프로페셔널은 인텔리제이랑 비교하면 아주 저렴한 가격이다. 파이참 또한 인텔리제이처럼 다년 구독을 하면 할인이 적용된다. 연간으로 추가 구독 시 1년..
var-let-constJavascript var-let-const 의 차이값의 변환기존의 Javascript를 사용하면서 가장 문제가 있다고 느낀점은 변수 선언의 방식이다.var 를 사용하면 변수 선언의 경우 할당되는 값이 유동적으로 변경될 수 있는 단점을 가지고 있다.아래와 같다.1234567var name = "길동";console.log(name);//길동 var name = "홍길동";console.log(name);//홍길동cs다음과 같이 name이라는 변수를 2번 선언했는데도 에러가 나오지않고 각기 다른 값이 출력된다.하지만 ES6업데이트 이후로 추가된 변수 선언 방식인 let과 const는 var와 같은 선언 방식을 막고있다.1234567let name = "길동"console.log(na..
메서드 체인(Method Chaining)메서드 체이닝메서드가 객체를 반환하게 되며느 메서드의 반환 값인 객체를 통해 또 다른 함수를 호출할 수 있습니다. 이러한 프로그래밍 패턴을 메서드 체이닝(Method Chaining) 이라 부른다. 객체 선언 및 생성아래는 자바 스크립트 코드로 객체를 작성하였다.123456789101112131415161718192021222324252627282930313233343536var myObject = function() { this._name = ""; this._age = 0; this._addr = "";}; myObject.prototype.setName = function(name) { this._name = name;}; myObject.prototype...
DI 란 ? (의존성 주입)DI란 스프링만의 기능은 아니다. OOP(객체지향프로그래밍)에서 자주 이용되는 프로그래밍 방법중 하나이다.Java 계열의 다른 프로그래밍을 해봤다면, 이미 사용해본 경험이 있을 수 있음.DI 아이폰과 삼성폰에 비유가능 - 아이폰은 배터리가 일체형이라, 배터리 수명이 다 했을 때 단순히 배터리만 갈아끼우면 되지만, 센터에 방문하지 않는 이상 불가능 - 삼성폰은 배터리 수명이 다해도 배터리만 교체하면 다시 이용가능 - 여담이지만 요즘은 둘 다 일체형으로 나와서 삼성폰도 교체 불가능 - 프로그래밍에 비유하자면 유연성 있게 필요한 객체를 붙였다가 뗐다가 할 수 있음의존하는 어떤 객체를 주입하는 것이 결국 DI 스프링 DI 와 스프링 컨테이너스프링 컨테이너 생성 및 빈 객체 호출 - 빈..
IIFE 란?IIFE(Immediately Invoked Function Expressions: "Iffy"라고 발음)는 즉시 호출 함수 표현식의 줄임말이다. 기본적인 형태는 아래와 같다. 123(function() { //Do fun stuff})()cs이것은 즉시 호출되는 익명 함수 표현식이다. 이것은 JavaScript에서 때에 따라 중요하게 사용되기도 함.즉시 호출 함수 표현식은 어떻게 동작하는가?괄호쌍이 익명함수를 감싸서 함수 선언을 함수 표현식으로 표현할 수 있습니다.그러므로 단순한 익명함수를 클로벌 스코프에 선언하지 않고 어디서든 익명함수 표현식을 가질 수 있습니다. 따라서, 아래와 같이 표현식이 가능합니다. 12345678910111213141516//괄호 사용 안함function() { ..
클로저란?MDN에서는 클로저를 다음과 같이 정의 클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 '기억한다.' 흔히 함수 내에서 함수를 정의하고 사용하면 클로저라고 한다. 하지만 대개는 정의한 함수를 리턴하고 사용은 바깥에서 하게 된다. 코드는 아래와 같다.12345678function getClosure() { var text = 'variable 1'; return function() { return text; };}var closure = getClosure();console.log(closure());cs위에서 정의한 getClosure()는 함수를 반환하고, 반환된 함수는 getClosure() 내부에서 선언된 변수를 참조하고 있다. 또한 ..
자바스크립트 비동기 처리와 콜백 함수비동기 처리란?자바스크립트의 비동기 처리란 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성을 의미. 비동기 처리의 첫번째 사례비동기 처리의 가장 흔한 사례는 JQuery의 AJAX 이다. 실제 웹 서비스 개발시 AJAX 통신을 뺴놓을 수 없다. 화면에 표시할 이미지나 데이터를 서버에서 불러와 화면에 표시해야 하는데 AJAX 통신으로 해당 데이터를 서버로부터 가져올 수 있기 때문이다. AJAX 코드는 아래와 같다.12345678910function getData() { var tableData; $.get('https://domain.com/products/1', function (response) { tableD..
Hoisting호이스팅(Hoisting)은 ECMScript 2015 언어 명세 및 그 이전 표준 명세에서 사용된 적이 없는 용어이다. 호이스팅은 JavaScript에서 실행 콘텍스트(특히 생성 및 실행 단계)가 어떻게 동작하는가에 대한 일반적인 생각으로 여겨진다. 하지만 호이스팅은 오해로 이어질수 있다. 예를들어, 호이스팅을 변수 및 함수 선언이 물리적으로 작성한 코드의 상단으로 옮겨지는 것으로 가르치지만, 실제로는 그렇지 않다. 변수 및 함수 선언은 컴파일 단계에서 메모리에 저장되지만, 코드에서 입력한 위치와 정확히 일치한 곳에 있다. 예제1JavaScript 가 어떤 코드 구분을 실행하기 전에 함수 선언을 메모리에 저장하는 방식의 장점 중 하나는 코드에서 선언하기 전에 함수를 사용할 수 있다는 것이..
JSTL 기본적인 사용 문법JSTL 태그 선언web.xml 에 선언하거나 jsp문서 상단에 라이브러리를 import하여 사용할 수 있으며 보통 아래와 같은 태그라이브러리를 자주 사용한다. 1234567891011121314 csEL의 표기 및 연산자JSTL 태그 라이브러리는 거의 모든 JSP spec을 커버할 수 있다.그러나, 간단하게 표현하는 장점을 최대한 살리기 위해서는 표현식으로 EL과 결합하여 사용하여 일정한 표기만 사용하는 추세이다.EL은 자바 코드가 아니며 스크립트 언어이다.EL은 JSTL 태그와 결합하면 간단하고 편리한 표기를 사용하여 복잡한 작동이 표현될 수 있다. EL 익스프레션은 달러표시 와 중괄호를 앞에 붙여 사용하여 범위를 정한다. -연산자-관계 : , gt,=, ge, ==, eq..