IT&컴퓨터공학
-
[JSP]JAVA 컴파일과 빌드의 차이점IT&컴퓨터공학/JSP 2022. 2. 10. 21:02
컴파일(Compile) 컴파일이란 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말한다. (목적파일이 생성됨) 즉, 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그램을 가르켜 컴파일러(Compiler)라 한다. 자바의 경우, 자바가상머신(JVM)에서 실행가능한 바이트코드 형태의 클래스파일이 생성이 된다. .java라는 자바 클래스 파일을 바탕으로 .class라는 클래스 파일이 생성된다. 빌드(Build) 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다. JAR, WAR 등의 실행 가능한 파일을 만드는 작업을 일컫는다. 빌드의 단계 중 컴파일이 포함이 되어 있는데 컴파일은 빌드의 부분집합이라 할 수 있다. 빌드 과정을 도와주는 도구를..
-
[JSP]Servlet 프로그램 만들기IT&컴퓨터공학/JSP 2022. 2. 10. 21:00
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; // 서블릿 프로그램은 말그대로 서버에 구현되어있는 프로그램이다. // 때문에, 항상 실행되는 코드가 아니라 클라이언트에서 요청이 들어왔을때만 실행된다. // 즉, was 에 의해 로드가 되고, 이 was는 extends HttpServlet ( 추상클래스 ) 를 보고 호출한다. public class Nana extends HttpServlet // Nana Servlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException..
-
[JSP] context 사이트 추가하기IT&컴퓨터공학/JSP 2022. 2. 6. 21:54
context란 ? http ://hostname:port/context/리소스들 여기서 바로 이 context 를 의미한다. 아래의 예시를 보자 우리에게 친숙한 네이버 홈페이지를 가져와보았다. 네이버같이 볼륨이 큰 페이지의 경우, 다양한 카테고리로 이루어져있고 이 각각의 카테고리마다 다른 디렉토리를 가지고 있을 것이다. 예를들어, 사전 카테고리는 : http://naver.com/사전/index.jsp 뉴스 카테고리는 : http://naver.com/뉴스/index.jsp 와 같이 디렉토리 단위로 나뉘어져있고, 각각의 카테고리를 context 사이트라고 부른다. 아래는 "IT" 라는 이름을 가진 context 사이트를 구성하는 예시이다. 예시 1. webapps 밑에 ITWeb 이라는 폴더 생성. 이..
-
[JSP] 웹 서버 프로그램과 ServletIT&컴퓨터공학/JSP 2022. 2. 3. 22:48
클라이언트에서 어떤 요청을 보냈을때, 웹 서버는 처음부터 해당 요청에 대한 페이지를 가지고 있진 않다. 예를들어, 클라이언트에서 멤버 리스트를 보내달라는 요청이 왔을 때, 이 멤버 리스트는 바로 직전까지 수정이 되었을 수도 있으므로, 상식적으로 생각했을때도 페이지를 미리 만들어 둔다는 것은 불가능하다. 대신에 웹 서버는 멤버 리스트를 만들 수 있는 '코드소스' 를 가지고 있다. 클라이언트에서 요청이 들어오면 웹 서버는 이 '코드소스' 를 실행하여 데이터를 얻는데, 이 코드소스가 실행되는 장소가 바로 'WAS'(Wep Application Server)이다. 이 코드소스는 다른말로 '서버 어플리케이션' 이라 부른다. 이 서버 어플리케이션 조각들 ( 요청 각각에 따라 다른 코드들 ) 을 바로 'Servlet..
-
[JSP] 웹 서버 프로그램이란?IT&컴퓨터공학/JSP 2022. 2. 3. 22:01
클라이언트 : 요청자 서버 : 제공자 기존에는.. 1. 클라이언트에서 프로그램을 다운받아서 사용했는데, 이 경우 프로그램이 수정되면 클라이언트에서 프로그램 삭제 후 재설치를 반복해야했다. 2. 클라이언트와 서버 간 데이터 전송시 소켓이나 RPC 를 활용했는데 이게 매우 불편했다. 이를 극복하고자 HTTP(웹) 등장. 클라이언트는 '브라우저' 를 활용함에 따라 프로그램 설치가 굳이 필요없어졌다. 서버에서 동적으로 페이지를 만들어서 클라이언트의 브라우저에 띄워주거나, 나아가 서버에서는 데이터만 받아오고 클라이언트에서 자바스크립트를 활용하여 페이지를 그리게 되었다. 그래서 현재에는 웹의 클라이언트 단 개발 : 웹 Front 개발 웹의 서버 단 개발 : 웹 Backend 개발 ( = 웹 서버 프로그램 개발 ) ..
-
[Javascript] 구조 분해 할당 ( destructuring )IT&컴퓨터공학/Javascript 2021. 3. 10. 13:58
Vuex 를 공부하다가 destructuring에 대한 내용이 나와서 정리해보려고한다. 하나를 공부하는데 필요한 지식이 너무많아서 꼬리에 꼬리를 물고 계속 공부중이다 ! ( 재밌긴 하다 ) Destructuring 중 객체 구조 분해 할당 let obj = { name : "devlog", age : 1 }; let { name, age } = obj; // { "devlog" , 1 } 객체를 구조분해 할 때 주의해야 할 것은 할당 연산자의 왼쪽에 객체리터럴이 와야 하고,할당 연산자의 오른쪽에 오는 값이 null이나 undefined여서는 안된다는 것이다. Vuex - action 예시 // store/index.js const store = new Vuex.Store({ state: { count: ..
-
[Vuex] GettersIT&컴퓨터공학/Vue 2021. 3. 10. 10:58
Getters 앞에서 Vuex 의 property 중 state 와 mutations 에 대해 다뤄봤다. 쉽게말하면 state 는 전역으로 사용될 데이터의 집합이고 mutations 는 이 state 의 값에 접근해서 값을 바꾸는 함수의 모음이다. 그럼 Getters 란 무엇일까 ? 여러 컴포넌트에서 Vuex state 를 각자 참조하고 계산하면 효율이 떨어진다. 때문에, state 에 기반한 별도의 값을 만들어 getters 내에 속성으로 저장(캐쉬) 해두고, 이 getters 내에 저장된 속성을 참조해서 사용하게 한다. // store.js (Vuex) getters: { doubleCounter: function (state) { return state.counter * 2; } }, // App...
-
[Auth] 쿠키, 세션 그리고 jwtIT&컴퓨터공학/Server 2021. 3. 9. 17:48
인증을 왜 하는가 ? 프론트엔드 관점 : 사용자의 로그인, 회원가입과 같이 사용자의 도입 부분 백엔드 관점 : 모든 api 요청에 대해 사용자를 확인하는 작업 HTTP 요청에 대해서 현재 가장 많이 쓰이는 통신 방식은 HTTP통신이다. HTTP 통신은 응답 후 연결을 끊기게 되며 과거에 대한 정보를 전혀 담지 않는다. 이 말은 지금 보낸 HTTP 요청은 과거에 내 정보를 담아 보낸 HTTP요청과는 전혀 관계가 없다. 따라서 각각의 HTTP요청에는 보내는 주체가 누구인지에 대한 정보가 필수적이다. 헤더 : 요청에 대한 정보들이 들어간다. 보통 이 헤더에 인증 수단을 넣어 요청을 보내 인증을 수행함. 바디 : 서버로 보내야 할 데이터가 들어간다. 인증방식 1. 계정 정보를 요청 헤더에 넣는 방식 : 보안이 ..