전체 글 107

Web Server와 WAS 이해하기

Java를 기준으로 작성되었습니다. Web Server와 WAS(Web Application Server) 웹 서버와 WAS의 역사 초기의 웹서버는 클라이언트의 요청에 대해 기존에 생성된 정적인 컨텐츠(Static Contents)만 응답할 수 있었다. 그 후 사용자의 요청에 따라 로직을 수행 후 변경된 동적인 컨텐츠(Dynamic Contents)를 응답할 필요가 생겼는데, 이를 Application이 붙은 Web Server라 하여 WAS라고 부른다. 웹 서버의 역할을 WAS가 대체할 수 있지만, WAS는 동적 컨텐츠를 제공하는데 집중하고 웹 서버는 정적 컨텐츠 제공 뿐만 아니라 여러 대의 WAS에게 분산하여 요청하는 등의 역할이 나뉘어 발전하게 되었다. 웹 서버 '미리 생성해 저장해놓은' 정적인 컨..

Back-End/Server 2021.12.19

[Docker] 기초 시리즈 (1) 도커의 개념과 사용이유

[도커 기초 시리즈 포스팅] [Docker] 기초 시리즈 (1) 도커의 개념과 사용이유 (Now) [Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치 [Docker] 기초 시리즈 (3) 이미지와 컨테이너 관계, 도커 아키텍처 [Docker] 기초 시리즈 (4) 도커 이미지의 구조 [Docker] 기초 시리즈 (5) 도커 이미지 다루기 - Docker Hub(Registry) [Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성 [Docker] 기초 시리즈 (7) 자주 사용하는 Dockerfile 명령어 [Docker] 기초 시리즈 (8) 자주 사용하는 도커 명령어 모음 [Docker] 기초 시리즈 (9) 도커 컨테이너 - 개념, 기본 사용법 [Docker] 기초 시리..

DevOps/Docker 2021.12.15

[Spring] Collection Bean 생성하기 - XML Config

❑ ArrayList의 생성자를 이용한 Collection Bean 생성 1) ArrayList의 생성자 살펴보기 ArrayList는 Collection을 받을 수 있는 생성자가 있다. 따라서 Spring Bean을 등록할 때 ArrayList 클래스를 type으로 이용해 Collection Bean을 생성한다. 2) SpringConfig.xml: DI지시서 작성하기 // Case1. ArrayList 내부에 bean 직접 정의 // ArrayList를 타입으로 사용 // Case2. 외부에 정의한 bean을 참조 // ArrayList를 타입으로 사용 태그 설명 ArrayList 타입의 객체를 Bean을 생성한다. , 생성자로 Collection을 받을 수 있으므로, 생성자 DI임을 알리는 태그와 ..

Back-End/Spring 2021.12.14

[Clean Code] 3장. 함수 : Functions

[Clean Code 시리즈 포스팅] [Clean Code] 1장. 깨끗한 코드: Clean Code [Clean Code] 2장. 의미 있는 이름 : Meaningful Names [Clean Code] 3장. 함수 : Functions (Now) [Clean Code] 4장. 주석 : Comments [Clean Code] 5장. 형식 맞추기 : Formatting [Clean Code] 6장. 객체와 자료구조 : Objects and Data Structures [Clean Code] 9장. 단위 테스트 : Unit Tests ❑ 작게, 그리고 더 작게 만들기 함수를 만드는 첫째 규칙은 '작게'다. 함수를 만드는 둘째 규칙은 '더 작게'다. 저자는 10줄도 길다고 표현한다. if / else / w..

[CSS] Flexbox 개념과 적용

Flexbox란? Flexbox는 Flexbox는 크게 'Container와 Item' 그리고 '중심축과 교차축' 두 가지 개념으로 이해한다. 개념 1. Container와 Item 첫번째는 Container와 Item의 개념이다. flex를 적용하기 위해선 Item을 담기 위한 Container tag의 display 속성을 flex로 적용하면 된다. 그리고 Container와 Item 각각에 적용되는 속성들을 파악해 적절한 속성값을 파악해 적용하는 것이 중요하다. 적용1과 적용2에서 display와 flex-direction을 이용해 기본 적용 예시를 살펴보고, Container 속성과 Item 속성을 하나씩 적용해보며 Flexbox를 이해한다. 적용1. flex box 적용 HTML item1 it..

Front-End/HTML, CSS 2021.12.03

[CSS] CSS 기초 3. Layout(display, position)

1. Display (Box 유형과 특성) 각 박스 태그에 Display 줄 수 있는 속성 값(박스 유형)은 블록(Block), 인라인(Inline), 인라인-블록(Inline-Block) 세 가지 유형이 있다. 세 가지 유형의 주요 특징은 다음과 같다. 특성 블록(Block) 인라인(Inline) 인라인-블록 (Inline-Block) 출력 시작 위치 새로운 라인(줄바꿈 됨) 현재 라인의 현재 위치(줄바꿈 X) 인라인 박스와 동일 타 박스들과의 관계 같은 라인에 다른 블록 박스들과 연속해서 표시 불가 같은 라인에서 다른 인라인 박스들과 연속해서 표시(줄바꿈 없음) 인라인 박스와 동일 박스 속성들의 사용 가능 여부 모든 박스 속성 지정 가능 박스 크기, 상하 마진 지정 불가 (width, height, ..

Front-End/HTML, CSS 2021.12.02

[CSS] CSS 기초2. Selector

Selector: HTML의 어떤 tag를 고를 것인지 규정하는 문법 Selector의 종류 Selector 기호 역할 및 설명 Universal * 모든 tag에 적용하는 기호 Type tag명 특정 tag에만 적용 State : 콜론 기호는 CSS에서 State라 부르며 마우스 hover와 같은 상태에 따라 스타일링 한다. tag 명 옆에 붙여서 작성한다. Attribute [속성명] Attribute라 부르며 속성을 갖는 tag를 스타일링 한다. tag 명 옆에 붙여서 작성한다. ID #id 해당 id를 갖는 곳에만 적용 Class .class 해당 class를 지정한 곳에 적용 [참고] ID와 Class의 차이 ID 문서 내 유일한 요소에 스타일을 적용할 때 사용한다. 주로 , 와 같이 문서 내 ..

Front-End/HTML, CSS 2021.12.02

[Clean Code] 2장. 의미 있는 이름 : Meaningful Names

[Clean Code 시리즈 포스팅] [Clean Code] 1장. 깨끗한 코드: Clean Code [Clean Code] 2장. 의미 있는 이름 : Meaningful Names (Now) [Clean Code] 3장. 함수 : Functions [Clean Code] 4장. 주석 : Comments [Clean Code] 5장. 형식 맞추기 : Formatting [Clean Code] 6장. 객체와 자료구조 : Objects and Data Structures [Clean Code] 9장. 단위 테스트 : Unit Tests ❑ 의도를 분명히 밝혀라 의도가 분명한 이름은 정말로 중요하다. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 프로그래머는 코드를 최대한..

[Design Pattern] OOP Design Principle : 디자인 패턴을 관통하는 원칙

디자인 원칙1 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리해 캡슐화한다. 달라지는 부분(새로운 요구사항이 있을때마다 바뀌는 부분)을 찾아서 나머지 코드에 영향을 주지 않도록 "캡슐화"한다. 그렇게 하면 나중에 바뀌지 않는 부분에는 영향을 미치지 않은 채로 그 부분만 고치거나 확장할 수 있다. 이 개념은 모든 디자인 패턴의 기반을 이루는 원칙이다. 모든 패턴은 '시스템의 일부분을 다른 부분과 독립적으로 변화 시킬 수 있는' 방법을 제공하기 위한 것이다. 디자인 원칙2 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. 디자인 원칙3 상속(Inheritance)보다는 구성(Composition)을 활용한다. 상속(Inheritance)은 재사용성을 높여주지만 확장성과 유연성은 낮다..

Design Pattern 2021.11.14

[Clean Code] 1장. 깨끗한 코드 : Clean Code

[Clean Code 시리즈 포스팅] [Clean Code] 1장. 깨끗한 코드 : Clean Code (Now) [Clean Code] 2장. 의미 있는 이름 : Meaningful Names [Clean Code] 3장. 함수 : Functions [Clean Code] 4장. 주석 : Comments [Clean Code] 5장. 형식 맞추기 : Formatting [Clean Code] 6장. 객체와 자료구조 : Objects and Data Structures [Clean Code] 9장. 단위 테스트 : Unit Tests ❑ 깨끗한 코드란? 프로그래밍 대가의 의견 비야네 스트롭스트룹(Bjarne Stroustup) C++ 창시자이자 The C++ Programming Language 저자 우..