본문 바로가기

분류 전체보기

(86)
NginX 이해하기 (+ Web Server , WAS) 0. 웹 서버는 무엇일까? 초기 웹 서비스는 대부분 정보 전달이 목적인 문서 위주의 정적 페이지였다. HTML과 같은 마크업 언어로 작성된 문서를 서버에서 보내주기만 하면 됐었다. 이후 조금 발전된 형태로 스크립트 언어를 얹은 동적 페이지가 등장했지만, 이때까지만 하더라도 서버에서 데이터를 처리하고 클라이언트로 전송해주는데 큰 부담이 되지 않았다. 그러나 SPA(single page application) 이라는 개념이 등장하면서 서버가 분리될 필요성이 생겼다. SPA는 문서 위주의 정적 웹 페이지와는 다르게 페이지 갱신에 필요한 데이터만을 전달받아 페이지를 갱신하기 때문에 필요한 데이터는 사용자마다 다르고, 복잡한 연산이 필요하기도 했다. 만약 웹 페이지에 필요한 정적 데이터와 페이지 갱신에 필요한 동..
깃(Git) 개념(버전 관리 시스템 - VCS)과 명령어 정리(CLI) 1. 깃(Git) 이란? 깃(Git)은 2005년에 리누스 토르발스에 의해 개발된 '분산 버전관리 시스템(Distributed Version Control Systems - DVCS)' 으로, 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 파일에 대한 작업을 조율하는데 사용된다. 주로 여러 명의 개발자가 하나의 소프트웨어 개발 프로젝트에 참여할 때 소스 코드를 관리하는데 주로 사용 2. 버전 관리란? 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해 볼 수 있고, 누가 문제를 일으켰는지도 추적할 수 있고, 누가..
Http 통신과 인증&인가(쿠키, 세션) 1. Http 이란? Http는 (Hyper Text Transfer Protocol)의 약자, Protocol은 통신을 원활하게 수용할 수 있도록 하는 통신 규약이고, 웹 브라우저와 웹 서버가 HTML로 작성된 웹 페이지나 파일 등등을 주고받기 위한 통신규약이다. 2. Http 통신이란? 클라이언트가 서버에 요청 메세지를 보내고 요청에 대해 서버가 응답 메세지를 반환, 통신 규약에 맞게 데이터를 주고받는 것 -> 그림 requset / response 구조 -> 그림 3. Body: 해당 요청의 실제 내용. 주로 Body를 사용하는 메소드는 POST다. ex) 로그인 시에 서버에 보낼 요청의 내용 Body: { "user_email": "jun.choi@gmail.com" "user_password":..
DTO, VO 개념과 차이점 1. DTO 란? 전송되는 데이터의 컨테이너(다른 시스템으로 전달하는 작업을 처리하는 객체) DTO(Data Transfer Object)는 계층(Layer) 간 데이터 교환을 하기 위해 사용하는 객체 (Controlloer(Web Layer) -> Service(Service Layer )) 로직을 가지지 않고 오직 getter / setter 메소드만 가진 순수한 데이터 객체 getter / setter로 프로퍼티를 표현 한다는 의미 -> setter 존재 시 가변, 비 존재 시 불변 2. VO 란? 관계 데이터 베이스의 레코드에 대응되는 자바 클래스 VO(Value Object) 는 값을 위해 사용 read-Only (사용하는 도중에 변경 불가능하며 오직 읽기만 가능) equals()로 객체의 모든..
javascript 익명 함수 정리 1. 익명 함수란? 더보기 익명 함수는 람다 대수로부터 영향을 받아 만들어진 프로그래밍에서 함수를 표현하는 방식의 일종이다. 비교적 최근부터 대부분의 프로그래밍 언어가 익명 함수를 지원한다. 흔히 Java가 8버전 부터 람다를 지원하게 되었다고 하는데 이때 람다가 익명 함수(Lambda abstraction) 를 말한다. 각 언어별로 익명 함수를 표현하는 법은 제각기 다르지만, 공통적으로 가지는 특징이 있다. 바로 일급 객체(First-class citizen) 라는 점이다. 일급 객체는 함수의 인자로 넘겨받을 수도 있으며, 함수의 결과값으로 리턴할 수도 있고, 변수에 값을 할당할 수도 있다는 것을 말한다. 프로그래밍 언어에서 익명 함수는 애초에 다른 함수에 인자로 넘기거나 함수의 결과 값으로 리턴할 용..
Javascript 스코프(scope) / 클로저(closure) 정리 1. 클로저를 들어가기 전에 알아야 할 개념 1-1) 스코프란? 변수 이름, 함수 이름, 클래스 이름과 같은 식별자가 본인이 선언된 위치에 따라 다른 코드에서 자신이 참조될 수 있을지 없을지 결정되는 것 function add(x,y) { console.log(x,y); return x + y; } add(3,6); console.log(x,y); 더보기 실행결과 3,6 ReferenceError: x in not defined 어쩌고.. 함수의 중첩 스코프 var x = "나는 전역 X"; function outer() { var y = "나는 outer함수의 지역 Y"; console.log(x); console.log(y); function inner() { var x = "나는 inner함수의 지..
javascript xlsx ecxel 모든 cell에 style 적용 주석을 봐주세요... for (const i in ws) { // 모든 cell을 돌겠다 if (typeof (ws[i]) !== 'object') continue; // object가 아니면 style 적용 안됨 ws[i].s = { // 모든 cell 에 style을 적용 alignment: { horizontal: 'center', }, border: { right: { style: 'thin', color: '000000', }, left: { style: 'thin', color: '000000', }, top: { style: 'thin', color: '000000', }, bottom: { style: 'thin', color: '000000', }, }, } 여기서 i는 number가 아..
javascript sheetjs , xlsx cell value에 따라 cell style 적용하기 주석에 설명이 있습니다! 추가적으로 설명이 필요하시면 댓글 남겨주세요... if (data[0][A] !== '') { // sheet에 뿌려질 전체데이터 배열 for (let i = 0; i < data.length; i++) { const tmp1 = i + 1; tmp = ws[`A${tmp1}`].v; //ws 는 excel sheet를 말함 if (tmp === 'testvalue') { // cell의 값이 'testvalue' 랑 같으면 밑의 style을 적용 ws[`A${tmp1}`].s = { // style 적용할 cell 지정 font: { bold: true, }, }; ws[`B${tmp1}`].s = { font: { bold: true, }, }; } } }