전체 글 669

[JS] ES6 달라진 문법 ( let, const ) + 호이스팅(Hoisting)

'var' 를 사용하지 말자! ES6부터 let과 const가 등장한 이유는 무엇일까? ▶ 실행 원리 JavaScript 엔진은 Stack 메모리와 Heap 메모리를 사용한다. 1. 호출 스택 ( Call Stack ) 스택은 LIFO이다. 마지막에 PUSH된게 먼저 POP된다. 이런 구조는 함수 호출 구조와 같다. Js파일이 호출되면 foo()가 호출되고 그다음 foo1() 함수가 호출된다. 그리고 foo1() 함수가 종료되고 foo()가 종료된 뒤 js파일이 종료된다. 그러므로 Stack 메모리에 PUSH와 POP이 되는 객체는 함수의 정보를 담은 객체로 이를, 실행컨텍스트(Execution Context; EC)라 부른다. 실행컨텍스트는 스택에 쌓이는 프레임으로 함수단위로 생성된다. 2. 호이스팅(..

Web언어/JS 2022.04.22

[스프링] 제어의 역전(IOC)이란?

스프링의 핵심 개념인 제어의 역전(IOC)에 대해서 알아보겠다. 제어의 역전(Inversion of Control) 제어(Control)란 무엇일까? 아래 코드를 살펴보자. public class A { B b = new B(); // B 객체 생성 } 1. 생성할 권리 new 연산자로 객체 B를 생성했다. 이는 생성할 권리이다. 2. 접근할 권리 A클래스는 B객체가 저장된 Heap 메모리 주소를 b 참조변수(멤버변수)로 갖는다. 고로, A 클래스의 객체는 B객체에 접근할 권리를 갖는다. 이렇듯, 생성할 권리와 접근할 권리를 통틀어 '제어(Control)'이라 부른다. A는 B를 생성하고 접근할 권리를 갖는다. 그러나 여기서 한 가지 문제점이 발생한다. B는 오로지 A가 있어야 존재하고 A만 접근 가능하..

SPRING/Spring Basic 2022.02.15

[JSP] JSP 코드블록

[JSP] JSP의 역할 HTML 문서를 Dynamic하게 만드는 언어 중 하나가 JSP이다. 이번 포스팅에서는 HTML 문서를 Dynamic하게 만드는 과정에서 JSP의 역할을 알아보겠다. HTML 문서를 서블릿(Servlet)으로 만들기 HTML문서는 태그 lordofkangs.tistory.com 지난 포스팅에서 JSP의 역할을 알아보았다. JSP는 jasper가 Dynamic하게 처리할 부분을 표시한 문서이다. 개발자는 HTML 코드 중 Dynamic한 부분을 코드블록을 사용하여 표현해야한다. jasper는 JSP 문서를 서블릿 클래스로 변환한다. // 서블릿클래스 public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase..

Web언어/JSP 2022.01.31

[OOP] 연관관계(2) - Vector의 사용

[OOP] 연관관계 (1) 객체지향설계의 기본은 객체 간 '참조'이다. 객체지향 프로그램은 객체 간 상호작용으로 특정 '기능'을 구현한다. 상호작용을 하려면 서로의 위치를 알아야한다. 즉 '주소'를 알아야한다. 그래 lordofkangs.tistory.com 지난 포스팅에서 연관관계란 무엇인지 알아보았다. 이번 포스팅에서는 단방향 연관관계에 대해서 알아보겠다. 단방향 연관관계 객체는 다른 접근의 데이터(필드)나 기능(메소드)이 필요하여 접근한다. 객체A는 객체B의 주소를 알고 객체B는 객체A의 주소를 모르는 관계, 이를 '단방향 연관관계'라 부른다. 위 그림의 객체A와 객체B 처럼 서로 주소를 알고 있는 관계를 양방향 관계라 부른다. 두 객체가 서로 참조한다면 두 객체를 엮는 공통의 목적이 존재한다. 예..

OOP/OOP Basic 2022.01.30

[JSP] JSP의 역할

HTML 문서를 Dynamic하게 만드는 언어 중 하나가 JSP이다. 이번 포스팅에서는 HTML 문서를 Dynamic하게 만드는 과정에서 JSP의 역할을 알아보겠다. HTML 문서를 서블릿(Servlet)으로 만들기 HTML문서는 태그로만 이루어져서 정적(Static)이다. 변수나 메소드를 갖지 못하고 연산도 하지 못한다. 그래서 클라이언트가 경로를 통해 HTML 문서에 접근하면 웹서버는 HTML 문서를 웹브라우저에게 보내고 웹브라우저는 HTML 코드를 파싱하여 브라우저에 표현한다. 이 과정에서 Dynamic한 요소란 없다. 그럼 JSP를 보자. 클라이언트가 JSP 문서에 접근하면 WAS는 jasper라는 프로그램을 돌려 JSP문서를 서블릿 파일로 변환한다. 서블릿이란 JAVA언어로 작성된 클래스 파일로..

Web언어/JSP 2022.01.30

[JSP] 동적(Dynamic) 페이지란?

HTML은 정적 페이지이다. 3+4 위 HTML 파일을 웹브라우저에 출력하면 3+4가 그대로 출력된다. +,- 같은 연산을 수행하고 사용자의 입력에 반응하는 페이지를 동적(Dynamic) 페이지라 부른다. 태그로만 이루어진 HTML은 동적인 표현을 못한다. 변수와 함수를 가진 언어를 사용하면 Dynamic한 성질을 불어 넣을 수 있다. 브라우저 vs 서버 언어를 사용하려면 언어를 해석하는 해석기가 필요하다. 브라우저 쪽 해석기를 사용하는 대표적인 언어가 JavaScript이고 JSP, PHP는 서버쪽 해석기를 사용한다. 다음 포스팅 부터 JSP를 이용하여 HTML 페이지에 Dynamic한 성질을 불어 넣는 법을 하나씩 알아볼 것이다.

Web언어/JSP 2022.01.29

[OOP] 연관관계 (1)

객체지향설계의 기본은 객체 간 '참조'이다. 객체지향 프로그램은 객체 간 상호작용으로 특정 '기능'을 구현한다. 상호작용을 하려면 서로의 위치를 알아야한다. 즉 '주소'를 알아야한다. 그래야 원하는 객체에 접근이 가능하다. 연관관계 와 의존관계 주소가 저장되려면 '공간'이 필요하다. 우리는 이를 '참조변수'라 부른다. 참조변수는 메모리에 생성되는데, Stack 메모리에 생성되는 참조변수 Heap 메모리에 생성되는 참조변수 두 가지가 있다. 객체는 크게 두 부분으로 나뉜다. 1. 필드 2. 메소드 필드는 객체 생성시, Heap 메모리에 저장된다. 메소드는 메소드 호출시, Stack 메모리에 저장된다. 필드의 참조변수는 가비지 컬렉터가 객체를 제거하지 않는 이상, 영속적으로 존재한다. 반면 메소드 내의 참조..

OOP/OOP Basic 2022.01.29

[ JSP ] 상태 유지 ( Session, Cookie )

웹브라우저(Client)와 웹서버(Server)는 HTTP로 통신한다. HTTP는 상태 비저장(Stateless) 프로토콜이다. HTTP 프로토콜로 이루어지는 통신은 모두 독립적으로 이루어진다. 고로, 첫 번째 통신은 두 번째 통신에게 영향을 줄 수 없다. 초창기 웹환경처럼 단순히 문서만 열람하는 경우라면 문제없다. 그러나 이제는 로그인처럼 특정 '상태(State)'를 유지해야 한다. 상태를 유지하는 역할은 '쿠키'와 '세션'이 맡는다. 상태유지란, 데이터를 유지함을 의미한다. 그럼 데이터를 저장할 공간이 필요한다. 서버 쪽에 위치한 데이터 저장공간을, 세션(session)이라 부르고 클라이언트 쪽에 위치한 데이터 저장공간을, 쿠키(Cookie)라고 부른다. 세션(Session) 세션은 서버(WAS)쪽에..

Web언어/JSP 2022.01.25

[빅데이터] 애널리스틱스 (Analytics)

애널리틱스(Analytics) 실시간으로 유입되는 데이터를 분석해서 더 나은 결정을 내리는 것 아무리 데이터가 풍부해도 명확한 분석기법이 따르지 않으면 쉽고 빠른 의사결정을 내릴 수 없음 데이터 마이닝과 애널리틱스의 차이점 데이터 마이닝 : 데이터로부터 가치를 추출하고 결과를 분석하는 기술 애널리틱스 : 에측기능, 통계분석, 확률분석 등의 데이터 기반 의사결정을 가능케 함 마케팅 애널리틱스 증거기반 마케팅 결정과 차별화된 경쟁력 확보하여 시장의 트렌드를 읽어낼 수 있다. 고객 데이터 1. 업무상 데이터 : 이메일, 생일, 주소 같은 소셜미디어 가입시 필요한 데이터 2. 신체 데이터 : 키, 몸무게 3. 보안 데이터 : 소득 수준, 휴대폰 번호, 신용카드 4. 개인 상세 데이터 : 종교, 정치색, 신조, ..

CS/빅데이터 2021.12.17

[인공지능] MLP ( Multilayer Perceptron )

퍼셉트론은 선형적으로 구분 가능한 경우 유용하지만 그렇지 못하면 성능을 발휘하지 못한다. 이런 한계를 극복하고자 MLP(Multilayer Perceptron)가 등장했다. MLP ( Multilayer Perceptron ) 핵심 아이디어 1) 은닉층을 둔다. 2) 시그모이드(Sigmoid) 활성함수를 도입한다. 3) 오류 역전파(Back Propagation) 알고리즘을 사용한다. 1. 다층 퍼셉트론 ( 은닉층 ) 인공지능의 목적은 '특징'을 토대로 결과를 '예측' 및 '분류'하는 것이다. 기계학습은 '특징 추출'을 인간이 담당한다. 인간의 주관이 담긴 특징을 토대로 학습이 이루어지기에 인간의 사고 범위 내에서 학습이 이루어진다. 인공신경망은 특징추출을 직접한다. 스스로 이미지나 영상의 특징을 추출하..

CS/인공지능 2021.12.16