운영체제란? 컴퓨터 시스템의 구성 하드웨어: CPU, 메모리, 저장장치, 입출력장치, 네트워크 장치 등 소프트웨어: 브라우저, PDF 뷰어, PPT, 컴파일러 등 응용 소프트웨어 & 시스템 소프트웨어 응용 소프트웨어: 우리가 직접 다룰 수 있는 부분들 ex) 브라우저, PDF 뷰어, PPT 등 시스템 소프트웨어: 응용 소프트웨어와 하드웨어의 매개체 역할 하드웨어를 관리해주는 역할 ex) 컴파일러, 레지스터, 윈도우즈, 맥 OS, 리눅스 등 운영체제 대표적인 시스템 소프트웨어 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모음 운영체제의 역할 컴퓨터 시스템의 자원 관리 자원: 하드웨어 자원, 소프트웨어 자원, 데이터 예: 저장장치에서 데이터 읽어 오기, 키보..
공부
관계형 모델의 개념 릴레이션의 특성 데이터베이스 모델링 과정 개념적 데이터 모델링의 결과 논리적 데이터 모델링 단계 DBMS에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정 데이터 정의 언어로 기술된 개념 스키마 생성 관계형 모델(relational model) 1969년 에드가 F. 코드에 의해 제안 릴레이션(relation)으로 데이터를 표현하는 모델 데이터 표현이 단순하고 직관적 구조화 모델 현재 대다수 DBMS의 기초 -> 관계형 모델을 사용하는 관계형 DBMS(RDBMS) ex) Oracle, DB2, PostgreSQL, MySQL, MSSQL 등 릴레이션의 구성 칼럼 값은 두 개의 메타 데이터(컴퓨터 과학과 + 전화번호)가 적용된 값 릴레이션의 특징 레코드의 유일성: 중복된 레코드의..
데이터베이스모델링의 이해 데이터베이스를 사용하기 전에 데이터베이스 사용에 대한 계획을 세워야 한다! -> 한정적 자원의 효율성 극대화 어떤 사항을 고려해야 할까? 데이터관리의 필요 비즈니스적 관점: 어떤 데이터를 저장해야 하는가? 컴퓨터 프로그래머 관점: 어떻게 데이터를 저장해야 하는가? 데이터베이스 시스템 구현 과정 데이터베이스 모델링의 개념 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업 모델링: 디자인, 설계, 표준화 모델: 표준화된 기본 틀 데이터 모델 사용할 데이터를 선별하여 데이터베이스에 체계적으로 구조화하여 저장·사용할 방법이 필요 데이터 모델 ▶ 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합 데이터 모델링 ▶ 실세계..
데이터 베이스의 역할 데이터 관리의 필요 대량의 데이터를 저장 및 관리하고 필요한 데이터를 신속히 검색할 수 있도록 보조하는 장치 데이터 관리의 역사 파일 처리 시스템 (전통적 데이터 관리 방식) 1. 데이터베이스가 개발되기 전에 데이터 관리에 사용 2. 업무 별 애플리케이션이 개별 데이터를 데이터 파일에 저장・관리하는 시스템 3. 발생 가능한 문제 데이터 종속의 문제 저장된 데이터가 특정 H/W에서 또는 사용자 및 S/W만 사용될 있도록 제한되는 문제 물리적 데이터 종속 논리적 데이터 종속 데이터 중복의 문제 동일한 사항에 대한 중복 데이터는 일관성, 보안성, 경제성 측면에서 문제 발생 일관성: 한 사실에 대해 한 개의 데이터 값을 유지 보안성: 같은 데이터에 같은 수준의 보안 유지 경제성: 데이터에 ..
JWT는 JSON Web Token의 약자로, 웹에서 정보를 안전하게 전송하기 위한 인증 방식 중 하나이다. 이 방식은 두 개체 사이에서 JSON 객체를 사용하여 정보를 안전하게 전송하도록 설계되어 있다. 이 정보는 디지털 서명이 되어 있어서 보증할 수 있다. JWT는 클라이언트와 서버 간에 토큰 기반 인증을 할 때 주로 사용된다. Cookie, Session, Token Cookie 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일 사용자가 웹 사이트에 방문할 때 생성되며, 사용자의 PC에 저장된다. 쿠키의 주요 목적은 사용자의 이전 활동을 기억하고, 그 정보를 활용해서 사용자에게 맞춤화된 서비스를 제공하는 것이다. 1. 클라이언트가 서버에 요청을 보낸다. 2. 서버가 응답할 때, 클라이언트 측에 ..
원래 JPA를 이용하여 개발할 때, Entity를 DTO 타입으로 변환하는 과정에서 ModelMapper나 생성자 방식을 사용했다. 새롭게 알게 된 MapStruct라는 것이 ModelMapper보다 간편하고 실행 시간에서 이점이 있다고 하여 공부하게 됐다. 또한, 다른 Mapping Library들 중 속도가 가장 빠르고, compile 중 에러를 확인할 수 있다고 한다. // 쪽지 읽기 @Override public GetMessages readMessage(Long id){ Optional result = repository.findById(id); Message message = result.orElseThrow(() -> new HttpClientErrorException(HttpStatus.N..
원래 예외 처리를 할 때 가장 기본적인 방식인 if, else 또는 try, catch를 이용하여 서비스단에서 아래와 같이 처리했다. 하지만 이런 경우 서비스의 규모가 커지면 코드가 길어져서 가독성이 떨어지게 된다. 이런 문제점을 해결하기 위하여 @RestControllerAdvice를 이용하는 방법을 찾아 공부하게 됐다. 더보기 @RestControllerAdvice과 @ControllerAdvice의 차이점 두 어노테이션의 주요 차이점은 @ResponseBody의 적용 여부이다. @ControllerAdvice는 이 어노테이션을 직접 적용해야 하지만, @RestControllerAdvice는 기본적으로 @ResponseBody가 적용되어 있다. @ResponseBody는 메소드가 반환하는 값을 HTT..
Projections.bean()과 Projections.fields()는 QueryDSL에서 제공하는 메소드로, 쿼리 결과를 특정 클래스의 인스턴스로 맵핑하는 역할을 한다. -> 특정 필드만 선택적으로 조회하고 싶을 때 사용 둘 다 동일한 목적을 가지고 있지만, 내부적으로 사용하는 방식에 차이가 있다. Projections.bean() 이 메소드는 JavaBean 스펙을 따르는 객체에 대한 프로젝션을 생성한다. JavaBean 스펙이란, 기본 생성자를 가지고 있고, getter와 setter 메소드를 통해 필드에 접근하는 클래스를 의미한다. Projections.bean() 메소드는 클래스의 기본 생성자를 이용해 인스턴스를 생성하고, 각 필드의 setter 메소드를 이용해 값을 설정한다. 따라서 이 메..