본문 바로가기

질문과 답변

(12)
Docker, CI/CD, Github Action (2) Docker 는 왜 사용하는가? 핵심들만 간단 명료하게 설명하라더보기Application의 일관적인 실행 환경을 제공하기 위해 사용되는 가상화 플랫폼이다.로컬 실행 환경과 격리된 환경에서 필요한 실행 환경만을 구성할 수 있다.  Docker 가 없을 때와, Docker 를 사용할 때의 차이를 통해 Docker 사용 이유에 대해 설명하라더보기가령 개발 환경에서의 JVM의 버전이 17이고, 테스트를 위한 실행 환경에서의 버전은 11이라면Docker가 없을 경우에 로컬에는 두 가지 버전의 JVM의 설치가 필요해 로컬 환경이 오염된다.Docker를 사용한다면 격리된 실행 환경을 통해 추가 버전 설치의 필요가 없어진다. 하나의 인스턴스에서 다중 컨테이너를 사용하는 사례 몇 가지만 이야기하라더보기side car 패..
DB, Concurrency Control, Transaction (2) MySQLWorkbench 나 DBeaver 같은 프로그램을 무엇이라고 부르는가?더보기DB Client로, DB 서버에 접속해 쿼리를 실행하고 데이터를 조회하거나 수정할 수 있는 도구이다. 관계형 데이터베이스는 어떤 특징을 갖고있는지 간단히 설명하라더보기2차원 행렬, 테이블로 구성되어있는 Fixed Schema를 가진 데이터 베이스이며Table과 사이의 FK와 PK를 통한 관계가 형성되어있다. 고신뢰성, 데이터 무결성을 지향하며이를 위해서 Guaranteed Consistency, 보장된 일관성을 위해 Isolation Level과 Transaction을 사용한다.ACID 조건을 충족하는 Transaction을 지원한다. 비관계형 데이터베이스는 왜 등장하였는가?더보기빅데이터 시대에 빅데이터 특성에 따른 ..
ERD, Normalization, Index ERD 는 무엇인가?더보기Entity Relational Diagram : DB에서 엔티티간 관계를 그려주는 diagram ERD 에서 Entity 와 Relationship 은 각각 무엇을 의미하는가?더보기Entity는 table을 말하고, Relationship이란 Entity간 연결성(table간 연결성)을 PK와 FK로 연결한 것을 의미한다. ERD 의 Relationship 에서 슈퍼키, 후보키, 기본키, 외래키 4가지 키를 모두 설명하라더보기슈퍼키 : Entity를 고유하게 식별할 수 있는 모든 속성 조합을 말한다. (유일성)후보키 : Entity를 고유하게 식별할 수 있는 최소한의 속성 조합을 말한다. (유일성, 최소성)기본키 : 후보키중 하나를 선택해서 Entity를 고유하게 식별할 수 있..
DB, Concurrency Control , Transaction DB 와 DBMS 차이는 무엇이며, DBMS 는 우리에게 무엇을 제공하는가?더보기DB는 데이터의 나열, 데이터 그 자체 이다.DBMS는 데이터에 대한 스키마(테이블) 정의(DDL), 저장 및 분석(DML) 그리고 관리를 제공하는 응용 프로그램이다. 관계형 데이터베이스의 관계는 무엇을 의미하는가?더보기2차원 데이터베이스 테이블에서 누군가의 기본키가 특정 테이블의 외래 키로 사용 할 수 있는데, 이 경우 두 테이블 간의 관계가 형성된다. Concurrency Control 동시성 제어란 무엇이며 왜 필요한가?더보기다중 요청(operation)이 동일 데이터에 접근하더라도 DB의 Integrity(prevents data corruption or inconsistency)가 위배되지 않게 하기 위해 사용한다...
Java, JVM Java 언어는 컴파일과 인터프리트 과정을 거치게 되는데, 각 과정을 상세히 설명하라더보기개발자가 작성한 소스코드를 자바 컴파일러인 Javac를 통해 바이트코드인 .class 또는 .jar(.class의 묶음)로 변환하는 과정이 자바의 컴파일이다.그리고 이 바이트 코드를 JVM으로 기계어인 Binary Code로 변환하는 과정에서 interpret 과정을 거친다.각 플랫폼, 실행환경에서 맞는 기계어로 변환한다. 컴파일 에러와 런타임 에러에 대해 상세하게 비교 설명하시오더보기컴파일 에러란 컴파일 과정 상에서 일어나는 에러이며,Checked Exception을 처리하지 않을 경우 발생하는 에러이다.소스코드를 통해 byte code를 생성할 때 인지되는 문법 오류와 같은 예시나혹은 IOException이나 S..
Web 구성 및 흐름 (2) 마크업 언어와 마크다운 언어는 무엇인가?더보기문서를 구성하는 구조적 의미를 가진 언어이다.마크다운 언어는 쉽게 쓰는 마크업의 파생 언어이자 공통 문법이다.Notion이나 discord 등 다양한 문서 편집기 혹은 커뮤니티에서 공통된 문법으로 사용할 수 있다. CSS 의 Cascading 의 의미 혹은 Selector 와 Specificity 에 대해 설명하라더보기Cascading의 의미는 style은 1. 자식은 부모의 style을 상속받는다는 것2. 같은 것을 가리키는 경우 가장 마지막에 명시된 CSS를 적용한다는 것입니다.가령 한 element에 명시된 style과 그 자식 element node에 명시된 style이 있을 경우전자와 후자의 중복된 CSS style이 있다면 후자의 것을 사용합니다. ..
Web 구성 및 흐름 Monolithic 아키텍쳐와 MSA 의 차이에 대해 설명하라.더보기Monolithic은 모든 서버가 단일 코드베이스를 바탕으로 하는 동일한 서비스를 제공하는 아키텍쳐입니다.반면 MSA 아키텍쳐는 Microservice Architecture, 여러개의 독립적인 서비스가 모여 하나의 애플리케이션을 구성하는 아키텍쳐 입니다.수많은 서버가 전체 어플리케이션을 구성하는 형태의 아키텍쳐입니다. Monolithic 아키텍쳐는 무엇이며 어떤 장단점이 있는가?더보기Monolithic은 모든 서버가 단일 코드베이스를 바탕으로 하는 동일한 서비스를 제공하는 아키텍쳐입니다.그렇기에 초기 개발 단계에서는 유지 보수가 용이하고, 개발 속도 및 배포가 빠릅니다. 서버 자체는 여럿이 될 수 있지만, 각각의 서버 인스턴스가 같은 ..
Spring, Spring Boot (4) Spring 에 사용된 2개의 아키텍쳐인 MVC 아키텍쳐와 3-Layered 아키텍쳐를 설명하시오더보기Spring MVC 아키텍쳐는 요청의 라우팅과 처리 방식의 연결을 지원합니다.  DispatcherServlet이 HandlerMapping를 통해 매핑한 Controller에게 HandlerAdapter가 해당 controller의 매핑된 메서드의 실행을 위임합니다.이는 Service, Repository를 통해 Model을 형성하고,Model과 Viewname, ViewTemplate을 통해 ViewResolver에서 View를 생성합니다.이를 DispatcherServlet이 반환하는 일련의 과정입니다. 이 때 MVC 아키텍쳐 전체가 Presentation Layer,Service를 통해 비즈니스 ..