전체 글 102

[JavaScript] 객체의 비구조화 할당

아래의 pizza 객체를 출력할 때 const pizza = { name : '콤비네이션', price : 20000 } 기본적인 방법 const print = (pizza) => { return `${pizza.name}의 가격은 ${pizza.price}입니다.`; } console.log(print(pizza)); 객체의 비구조화 할당 방법 const print = (pizza) => { const {name, price} = pizza; return `${name}의 가격은 ${price}입니다.`; } console.log(print(pizza)); or const print = ({name, price}) => { return `${name}의 가격은 ${price}입니다.`; } consol..

[CSS] 상속(Inherit)의 개념

1. 상속이란 ? - 조상 요소로부터 하위요소로 CSS의 요소가 상속이 될 수 있다. .ecosystem{ color:red; } 생태계 동물 호랑이 사자 코끼리 식물 .ecosystem에 적용된 색상이 하위 요소들에게도 적용됨 2. 상속되는 속성 font color text-align text-indent text-decoration letter-spacing opacity 등 3. 강제 속성 - 상속되지 않는 속성도 inherit 이라는 값을 사용하여 '부모'에서 '자식'으로 강제 상속 시킬 수 있다. '자식'을 제외한 '후손'에게는 적용되지 않으며, 모든 속성이 강제 상속을 사용할 수 있는 것은 아님 .parent{ position: absolute; /* 상속되지 않는 속성과 값*/ } .chil..

Front-End/SCSS 2020.12.13

[HTML] 블록 레벨(Block level) 요소와 인라인(inline) 요소 특징

1. Block 요소 DIV, H1, P 등 대다수의 요소 사용 가능한 최대 가로 너비를 사용 CSS를 통해 크기를 지정할 수 있음 기본 CSS (width : 100%; height : 0;)로 시작 수직으로 쌓임 margin, padding 위, 아래, 좌, 우 사용 가능 주로 레이아웃 용도 2. Inline 요소 SPAN, IMG 등 필요한 만큼의 너비를 사용 CSS를 통해 크기를 지정할 수 없음 기본 CSS (width : 0; height : 0;)로 시작 수평으로 쌓임 margin, padding 위, 아래는 사용 불가능 주로 TEXT 용도

Front-End/HTML 2020.12.12

[React] 리액트란 ? 리액트의 특징 정리

1. 리액트는 페이스북에서 개발하고 관리하는 UI 라이브러리 2. 앵규러와 달리 리액트는 UI 기능만 제공 3. 전역 상태 관리, 라우팅, 빌드 시스템 등을 각 개발자가 직접 구축 4. 가상 돔(virtual dom)을 통해서 UI를 빠르게 업데이트 (가상 돔(virtual dom) : 이전 UI 상태를 메모리에 유지해서, 변경 될 UI의 최소 집합을 계산) 5. 리액트는 함수형 프로그래밍을 적극적으로 활용 (render 함수는 순수 함수로 작성한다 / state는 불변 변수로 관리한다) 6. 컴포넌트의 상태값을 수정할 때는 기존 값을 변경하는게 아니라 새로운 객체를 생성

Front-End/React 2020.12.10

[Spring Boot] 스프링 부트에서 JSP 사용

1. 의존성 추가 javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper provided 2. JSP에 태그 선언 3. application.properties 설정 spring.mvc.view.prefix = /WEB-INF/jsp/ spring.mvc.view.suffix = .jsp 4. 제약사항 JAR 프로젝트로 만들 수 없음, WAR 프로젝트로 만들어야 함 Java -JAR로 실행할 수 있지만 "실행가능한 JAR파일"은 지원하지 않음 언더토우(JBoss에서 만든 서블릿 컨테이너)는 JSP를 지원하지 않음 Whitelabel 에러 페이지를 error.jsp로 오버라이딩 할 수 없음 위와 같은 제약사항으로 인해 Spring Boot에서는 JS..

Spring Boot 2020.12.08

[AWS] EC2 아마존 리눅스 서버 생성 시 초기 설정

EC2 아마존 리눅스 서버 생성 시 초기 설정 Java 8 설치 sudo yum install -y java-1.8.0-openjdk-devel.x86_64 sudo /usr/sbin/alternatives --config java 타임존 변경 : 기본 서버의 시간은 미국 시간대 sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime date 호스트네임 변경 : 현재 접속한 서버의 별명을 등록 sudo hostnamectl set-hostname 원하는 호스트명 sudo vim /etc/hosts => HOSTNAME = 원하는 호스트명 - 출처 : 스프링 부트와 AWS와 혼자 구현하는 웹 서비스 & AWS 공식 가이드

AWS 2020.12.07

[Algorithm] 배열(Array)과 링크드 리스트(LinkedList)의 차이점

1. 배열(Array)의 특징 - 배열은 각 원소에 즉시 접근 가능 ex) array[0], array[1] 이런식으로 즉 O(1)내에 접근 가능 - 배열은 원소를 중간에 삽입/삭제 하려면 모든 원소를 다 옮겨야 함 (최악의 경우 배열의 길이 N만큼 옮겨야 해서 O(N)의 시간복잡도) - 원소를 새로 추가하려면, 새로운 공간을 할당해야 하므로 비효율적인 자료구조 2. 링크드 리스트 (LinkedList)의 특징 - 리스트는 크기가 정해지지 않은 데이터의 공간 - 리스트는 특정 원소에 접근하려면 포인터를 따라 탐색 (최악의 경우 모든 노드를 탐색해야 하므로 O(N)의 시간복잡도) - 리스트는 원소를 중간에 삽입/삭제 하기 위해서는 앞 뒤의 포인터만 변경 (원소 삽입/삭제를 O(1)의 시간 복잡도) Arra..

Algorithm 2020.12.04

[Spring Boot] 2대 이상의 서버에서 세션 저장소 설정 방법

2대 이상의 서버에서 서비스하고 있다면 톰캣마다 세션 동기화 설정을 해야한다. 세션 저장소 방법 3가지 1) 톰캣 세션을 사용 - 일반적으로 별다른 설정을 하지 않을 때 기본적으로 선택되는 방식 - 이렇게 될 경우 톰캣(WAS)에 세션이 저장되기 때문에 2대 이상의 WAS가 구동되는 환경에서는 톰캣들 간의 세션 공유를 위한 추가 설정이 필요 2) MySQL과 같은 데이터베이스를 세션 저장소로 사용 - 여러 WAS 간의 공용 세션을 사용할 수 있는 가장 쉬운 방법 - 많은 설정이 필요 없지만, 결국 로그인 요청마다 DB IO가 발생하여 성능상 이슈가 발생 - 보통 로그인 요청이 많이 없는 백오피스, 사내 시스템 용도로 사용 3) Redis, Memchached와 같은 메모리 DB를 세션 저장소로 사용 - ..

Spring Boot 2020.12.03

[Spring Boot] template might not exist or might not be accessible by any of the configured template resolvers 오류 해결

Thymeleaf를 사용하고 Javascript로 Ajax 통신 중 다음과 같은 에러가 발생했다. template might not exist or might not be accessible by any of the configured template resolvers ... $.ajax({ method:'POST', url:'/getLocationData', dataType:'json', success:function (data){ console.log("data:::"+data); } }) @Controller public class LocationController { @Autowired private LocationService locationService; @PostMapping("/getLoc..

Spring Boot 2020.11.26