본문 바로가기

분류 전체보기40

[CS] DTO Data Transfer Object계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는 객체단순성복잡한 데이터 구조를 단순화하여 직렬화(Serialization)와 역직렬화(Deserialization)가 쉬워지게 한다.불필요한 데이터 제거DTO는 필요한 필드만 포함하며, 불필요한 데이터를 제거하여 성능을 향상시킬 수 있다.재사용성하나의 DTO 클래스를 통해 여러 시스템 간 데이터 전달이 가능하며, 유지보수가 용이하다.캡슐화도메인 모델을 계층 간 전송에 직접 활용하지 않으므로, 도메인 모델을 캡슐화하여 보호할 수 있다.결합도 감소도메인 모델을 계층 간 전송에 사용하면, 모델과 뷰의 결합도가 올라갈 수 있다. 이 때 DTO를 사용하여 계층 간 결합도를 느슨하게 만든다. 2025. 1. 20.
[CS] Primary Key / Foreign Key Primary Key [주 키]각 테이블에서 각 레코드를 고유하게 식별하는 필드.유일성: 주 키 값은 테이블 내에서 유일해야 한다. (중복 X)Not NULL: 주 키 필드는 NULL값을 가질 수 없다.주 키는 필수적으로 정의되어야 한다.Foreign Key [외래 키]다른 테이블의 주 키를 참조하는 필드.외래 키는 두 테이블 간의 관계를 정의하며, 주로 데이터 일치를 유지하거나 참조 무결성을 보장하는 데 사용된다.참조 무결성: 외래 키는 참조하는 테이블의 주 키와 일치해야 한다.유일성 X: 외래 키는 중복될 수 있으며, NULL값을 가질 수도 있다.Conclusion특징Primary KeyForeign Key유일성반드시 유일중복 가능NULL값가질 수 없음가질 수 있음참조 관계데이터의 고유 식별자다른 테.. 2025. 1. 20.
[CS] IoC / DI (제어 역전과 의존성 주입) Inversion of Control [제어 역전]제어의 역전제어 흐름을 애플리케이션의 외부 요소에게 위임하는 패턴객체의 생성과 관리, 제공의 주체가 프로그래머가 아닌 컨테이너(프레임워크)가 되는 것IoC를 통해 코드의 결합도를 낮추고, 테스트와 유지보수가 더 용이해진다.Dependency Injection [의존성 주입]IoC의 주요 기법 중 하나객체가 필요로 하는 의존성을 외부에서 주입받아 사용하는 패턴특정 서비스나 객체가 필요할 때 생성하는 것이 아니라, 외부에서 제공되는 객체를 전달받아 사용하는 방식의존성 주입 방법- Constructor 주입클래스의 생성자 메서드를 통해 의존성을 주입하는 방식의존성은 주입받는 생성자 매개변수를 통해 전달된다.@Injectable() 데코레이터를 사용하여 의존성이.. 2025. 1. 20.
[CS] MVC Pattern Model - View - Controller Pattern애플리케이션의 구성 요소를 세 가지 역할로 분리하여 코드의 유지보수성과 확장성을 높이는 데 사용하는 아키텍처 패턴구성 요소Model데이터와 비즈니스 로직을 처리하는 부분DB, 상태 관리, 응용 프로그램의 핵심 로직을 포함한다.View나 Controller와는 독립적으로 동작하며, 데이터의 변경 사항을 View에 알려준다.e.g. DB에서 영화 정보를 가져오는 클래스ViewUI를 담당화면에 데이터를 출력하고, 사용자의 입력을 처리하기 위한 시각적 요소를 포함한다.Model에서 데이터를 가져와 화면에 출력하고, Controller와 협력하여 사용자 입력을 처리한다.e.g. HTML, JSP, XML layout file 등Controller사용자의 .. 2025. 1. 20.
[CS] Overriding / Overloading Overriding부모 클래스의 메서드를 자식 클래스에서 재정의하는 방식메서드 이름, 매개변수, 리턴 타입이 부모 메서드와 동일해야 한다.@Override 어노테이션을 이용해 오버라이딩 여부를 명확히 표시 가능런타임에 호출될 메서드가 결정된다.오버라이딩을 통해 다형성을 구현할 수 있다.class Parent { public void display() { System.out.println("Parent Mehtod"); }}class Child extends Parent { @Override public void display() { System.out.println("Child Method"); }}Overloading같은 이름의 메서드를 여러 개 정의하는 방식같은 이름의 .. 2025. 1. 20.
[CS] RDBMS / NoSQL RDBMS정의데이터를 테이블 형식으로 관리하는 데이터베이스 관리 시스템테이블은 Row(tuple), Column(attribute)으로 구성되어 있으며, 각 테이블 간 관계가 설정되어 데이터를 효율적으로 관리할 수 있다.SQL문을 통해 데이터의 CRUD(Create, Read, Update, Delete) 작업이 가능하다.Oracle DB, MySQL, PostgreSQL, MariaDB 등이 대표적인 RDBMS이다. 특징데이터 저장 구조데이터를 테이블 형태로 저장, 테이블은 행과 열로 구성된다.관계 설정각 테이블 간 외래키(Foreign Key)를 통해 관계를 설정하여 데이터의 무결성을 유지한다.데이터 무결성 보장데이터의 정확성과 일관성의 보장을 위해 Primary Key, Foreign Key, Un.. 2025. 1. 14.
[CS] Query String / Path Variable Query String“?” 기호 뒤에 key-value 쌍으로 데이터를 전달하는 방식주로 선택적인 파라미터나 필터링, 검색 조건을 전송할 때 사용한다.여러 개의 파라미터를 사용할 경우, &으로 연결한다.URL 형태https://example.com/products?page=2&category=foodpage가 2이고, 카테고리가 food인 상품을 필터링하여 응답 요청특징순서가 중요하지 않다.쿼리 파라미터는 필수 값이 아니기 때문에 선택적으로 사용 가능하다.RESTful 설계에서는 주로 필터링에 사용된다. Path VariableURL 경로의 일부로 사용되는 변수리소스를 특정하거나 고유 식별자(ID 등)를 지정할 때 주로 사용한다.주로 특정 리소스의 CRUD 작업에서 사용한다.URL 형태https://e.. 2025. 1. 13.
[CS] 서버 개발을 위한 기초 지식 Network여러 대의 컴퓨터 또는 장비가 서로 연결되어 정보를 주고 받을 수 있게 도와주는 기술클라이언트가 요청하면, 서버가 요청에 대한 응답을 수행한다. Client & Server사용자는 브라우저 등(Client)을 이용해 서버(Server)에 정보(Data)를 요청(Request)하고 응답(Response)를 받는다.서버 또한 클라이언트가 될 수 있다. (외부 서버에 API 요청하는 경우 등)요청이 서버에 도달하기 위해서는 IP 주소, 포트 번호가 필요하다. Web Server & Web Application ServerWeb Server클라이언트로부터 HTTP 요청을 받아 정적인 콘텐츠를 사용자에게 전달하는 역할Web Application Server게시물 조회나 정렬처럼 다양한 동적 로직을 수.. 2025. 1. 13.
[서평] 한병철 <피로사회> 제목 피로사회 (2012)저자 한병철 출판 문학과지성사 장르 인문/사회, 심리 기간 2025.01.12 평점 4 / 5 계기 대학교 1학년 시절 교양 수업 중 교수님이 추천해 주신 책이다. 70페이지 가량의 짧은 분량에도 불구하고 이해가 어려운 한자어가 많고, 문장 구조가 복잡하여 쉽사리 읽지 못하고 한동안 포기했었다. 많은 배경 지식을 필요로 한다는 점 또한 진입 장벽이 되었다. 이후 책장에서 우연히 발견했는데, 다시 읽어보고 싶은 마음이 생겨 책을 다시 펼쳐보게 되었다.요약 20세기는 두 차례의 세계대전과 냉전시대를 거치며, 금지·강제·규율·의무 등 부정적인 키워드가 주도하는 면역학적 부정성 패러다임 시대였다. 하지만 냉전 종식 이후 맞이한 21세기는 능력·성과·자기주도·과잉 등 긍정성의 .. 2025. 1. 12.