IT 55

[CS] OSI 7 Layer

OSI 7 Layer 에 대한 개념 정리를 위해 포스팅 한다. 1. 정의 - 국제 표준화 기구(ISO) 에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것 2. 각 계층의 기능 계층 1. 물리 계층 물리적으로 연결된 두 대의 컴퓨터가 데이터를 송수신 할 수 있게 해주는 기능 수행 계층 2. 데이터 링크 계층 같은 네트워크에 있는 컴퓨터들이 데이터를 주고 받게 해주는 기능 수행 MAC - 물리적 주소 계층 3. 네트워크 계층 IP 주소를 활용해 서로 다른 네트워크에 속한 컴퓨터 간에 데이터를 주고 받게 해주는 기능 수행 주소 부여 (IP) 경로 설정 (Route) 계층 4. 전송 계층 양 끝단 (End to End)의 사용자들이 서로 데이터를 주고 받게 해주는 기능 수..

IT/CS 2023.05.10

[CS] Multi-Process vs Multi-Thread

멀티 프로세스와 멀티 스레드에 대한 개념 정리를 위해 포스팅 한다. 0. Process 와 Thread 란? - Process 운영체제 로부터 시스템 자원을 할당 받는 작업의 단위 Code, Data, Stack, Heap 의 메모리 영역 구성 - Thread Process 내에서 실행되는 작업의 단위 CPU 이용의 기본 단위 Code, Data, Heap 영역 공유 각 Thread 는 별도의 Stack 영역을 가짐 1. Multi-Process - 개념 2개 이상의 프로세스가 동시에 실행되는 것, 이 때 프로세스 들은 CPU 와 메모리를 공유함 여러 프로세스가 동시에 메모리에 적재된 경우, 각 프로세스가 자신의 메모리 영역에만 접근하도록 운영체제가 관리 2. Multi-Thread - 개념 하나의 프로..

IT/CS 2023.05.07

[JUnit] TDD를 편하게 하기 위한 JUnit 사용법

NEXTSTEP 에서 박재성 님의 "자바 플레이그라운드 with TDD, 클린코드" 강의를 듣고 TDD 를 시작해보려고 하는 중 유용하다고 생각되는 항목들에 대해 차근차근 정리해 나가려고 한다. 1. @ParameterizedTest - 목적: 중복 코드를 제거하기 위해 사용 - 사용법 private Set numbers; @BeforeEach // Test 전 Data Setting void setUp() { numbers = new HashSet(); numbers.add(1); numbers.add(1); numbers.add(2); numbers.add(3); } @ParameterizedTest // 중복 제거 @ValueSource(ints = {1, 2, 3}) // 테스트 대상 void c..

IT/Java 2023.03.25

[Vue.js] CORS 문제 해결의 건

개인 프로젝트 (" Vue.js + Spring Boot & JPA 를 활용한 주식 종목 관리 게시판 개발 " ) 를 진행하다가 맞닥뜨린 "CORS (Cross-Origin Resource Sharing, 교차 출처 자원 공유) 문제" 를 해결한 과정을 정리한 글이다. 1. 정의 - 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조 2. 현황 - Client 단에서 Server 단으로 HTTP 요청 (GET, POST 등) 을 하는데 CORS 문제가 발생 - Client Env. > Vue.js 3 Version > URL: http://localhost:3000 - Server Env. > SpringBoot 2.6.7 & Java 11..

IT/Vue.js 2023.02.25

[Quartz] Quartz 스케줄러 적용의 건

다음은 Quartz 스케줄러 적용 관련한 글이다. 1. 배경 스케줄링 방식을 "스프링의 @Scheduled 어노테이션 사용" 에서 "Quartz 라이브러리 사용" 으로의 변경에 대한 검토를 하기 위해 진행하였다. 2. 개발 환경 개발 환경은 다음과 같다. Spring Framework 4.1.2 quartz-2.2.3 library 3. 전체 구조 context-quartz.xml : schedulerFactoryBean 생성 후 jobDetail 선언 SchedulerInit.java : 새로운 schedule 생성 quartzMainJob.java : schedule 실행 로직 호출 JobDetailFactoryBean.java : context-quartz.xml 에서 jobDetail 만들 때 사..

IT/Java 2023.01.13

[Spring] Entity, DTO, DAO, VO 란?

회사 프로젝트 및 개인 프로젝트 (" Spring Boot & JPA 를 활용한 주식 종목 관리 게시판 개발 ") 진행 중에 이에 대한 명확한 개념 정리가 필요하다고 생각하여 포스팅한다. 1. Entity - 개념 Entity 는 SQL 에서 자주 사용되는 개념이고, "실제, 객체" 의 의미를 갖고 있다. 그 중 JPA 의 Entity 에 대해 이야기 해보자면, DB 에서 영속적으로 저장된 데이터를 Java 객체로 매핑하여 인스턴스의 형태로 존재하는 데이터를 의미한다. 참고) JPA 를 어디에 사용하면 좋을까? 기존 JDBC 만을 이용한다면, 반복적이며 비슷한 SQL 문을 계속 만들어야 하고 DB 의 테이블과 Java 객체 간 매핑 작업을 계속해야 한다. 그러나 JPA 를 사용하면 SQL 문을 개발자가 ..

IT/Spring 2022.11.30

SQLD 내용 정리 4

* 순환 관계 모델 - 한 테이블 내 레코드끼리 관계를 갖는 데이터 모델 - 순환 관계 테이블은 셀프 조인을 통해 부모 노드나 자식 노드를 조회할 수 있음 * 계층 쿼리 - START WITH 절과 CONNECT BY 절로 구성됨 WHERE 절 다음에 기술하지만, 실제 실행 순서는 WHERE 절보다 앞섬 START WITH 조건을 만족하는 데이터를 시작으로 CONNECT BY 조건을 만족하는 데이터를 찾은 후 최종적으로 WHERE 조건으로 필터링함 - START WITH 절은 생략 가능함 / PRIOR 연산자는 직전 상위 노드의 값을 반환함 - CONNECT BY 절의 조건은 계층 전개 시 평가되므로 선택되는 하위 노드에 영향을 미침 - CTE (Common Table Expression) 은 WITH ..

IT/SQL 2021.04.11

SQLD 내용 정리3

* 카티션 곱: - 조인 조건이 누락되면 카티션 곱 집합이 생성됨 - 의도적으로 카티션 곱 집합을 만들기도 하지만, 실수로 조인 조건을 누락하는 경우도 있으므로 주의 필요 * INNER JOIN 절 - ON 절에 조인 조건을 기술하며, 일반 조건은 WHERE 절에 기술할 수 있음 조인 조건과 일반 조건을 분리하여 가독성을 향상시킬 수 있음 * NATURAL JOIN 절 - 이름이 같은 열로 테이블을 등가 조인함 * USING 절 - [USING 절에 지정한 칼럼 기준]으로 테이블을 등가 조인 함 - 지정한 열을 조인할 테이블에 동일한 이름으로 존재해야 함 - USING 절에 지정한 칼럼을 ALIAS 등으로 한정할 수 없음 - USING 절의 열 부분은 식별자를 가질 수 없음 * OUTER JOIN 절 -..

IT/SQL 2021.04.04

SQLD 내용 정리2

* 관계를 고려한 트랜잭션 구현 1) 자식 테이블 기준으로 부모 테이블이 필수 관계라면, 부모 레코드를 먼저 입력해야 함 자식 레코드 입력시, 외래 키에 부모의 식별자 값을 반드시 입력해야 하기 때문 2) 부모 엔터티 기준으로 자식 엔터티도 필수 관계라면, 부모와 자식 레코드 입력을 한 트랜잭션으로 묶어서 처리해야 함 부모 레코드 입력은 성공했는데 자식 레코드 입력은 실패하면 안 되기 때문 3) 부모 레코드와 함께 첫번째 자식 레코드를 입력한 이후, 두 번째 자식 레코드부터는 개별적으로 입력할 수도 있는데 이는 업무적인 트랜잭션 정의에 의해 결정됨 > 여러 행을 읽어 값을 집계할 때는 NULL값을 연산 대상에서 제외함 > 식별자: 엔터티에서 데이터를 유일하게 식별할 수 있는 속성 (식별자를 통해 엔터티의..

IT/SQL 2021.03.28

SQLD 내용 정리1

# SQLD 시험에 나오는 내용을 정리해나가려고 한다. 1. 모델링의 3대 특징: 단순화, 명확화, 추상화 * 모델: 일정한 표기법에 따라 표현한 모형, 축소형 * 모델링: 모델을 만들어가는 일 자체 2. 데이터 모델 유형 1) 개념: 추상화 수준이 제일 높고 업무 중심적이고 포괄적인 수준의 모델링 * 주로 핵심 엔터티와 그들간의 관계를 정의함 2) 논리: 업무에 대한 키, 속성, 관계 등을 정확하게 표현 * 업무에 필요한 모든 엔터티와 속성, 관계를 도출함 3) 물리: 데이터베이스 이식을 위해 성능, 저장 등 물리 요소를 고려하여 설계 3. 엔터티: 인스턴스의 집합 - 변별할 수 있는 사물 - 데이터베이스 내에서 변별 가능한 객체 - 정보를 저장할 수 있는 어떤 것 * 속성: 각 인스턴스의 성격을 구체..

IT/SQL 2021.03.21