[데이터베이스] #3 SQL I (데이터베이스 언어, DDL SQL)
·
전공/데이터베이스
목차 데이터베이스 언어 DDL DML DCL 절차적 언어 vs. 비절차적 언어 SQL DDL SQL SQL 특징 테이블 생성 무결성 제약 스키마 삭제 및 변경 Drop vs. Delete DML SQL Insert: 입력 Delete: 삭제 Update: 갱신 Select 검색 1. 데이터베이스 언어 데이터 베이스 언어는 기능적 관점에서 DDL, DML, DCL로 구분 DDL 스키마에 대한 조작을 담당 (생성, 삭제, 변경 등) 데이터베이스 시스템은 스키마에 대한 정보를 데이터 사전에 저장/관리하므로, DDL 실행 효과는 데이터 사전에 반영 DML 인스턴스에 대한 조작을 담당 (생성, 조회, 삭제, 변경 등) 사용자는 DML을 이용하여 질의를 생성 DML을 질의어라고도 함 DCL 스키마와 인스턴스를 제외..
[데이터베이스] #2 관계형 데이터 모델
·
전공/데이터베이스
목차 관계형 데이터 모델 속성 관계 스키마 및 인스턴스 관계형 데이터베이스 대학 데이터베이스 예제 키 참조 무결성 데이터 사전 샘플 대학교 데이터베이스 관계 대수 Select: σ Project: Π Union: ∪ Set difference: ㅡ Cartesian product: × Rename: ρ 관계 대수식 추가 관계 대수 Assignment: ← Set intersection: ∩ Natural join: ⋈ Join Inner Join Outer Join 나눔 연산 관계 대수 정리 예제 +) 연습문제 1. 관계형 데이터 모델 관계 = 테이블 터플 = 레코드 속성 = 칼럼 속성 도메인 속성 값으로 허용할 수 있는 값의 집합 도메인에 속하는 모든 값은 원자(atomic) 값을 가져야 함 defau..
[데이터베이스] #1 데이터베이스 소개
·
전공/데이터베이스
목차 데이터베이스 데이터베이스 시스템 이점 데이터 추상화 및 데이터 모델 3단계 스키마 구조 데이터 모델 ERD 데이터베이스 시스템 데이터베이스 관리 시스템 구성 요소 데이터 사전 트랜잭션 관리 전통적인 DBMS vs. NOSQL(Not Only SQL) +) 연습문제 1. 데이터베이스 데이터베이스 시스템 이점 데이터 추상화 제공 데이터 접근의 용이성 제공 데이터 중복 및 불일치성에 대한 제어 용이 데이터 무결성 제약조건 유지 용이 갱신 원자성 제공 다수 사용자의 동시성 제어 데이터 보호 데이터 백업 및 회복 2. 데이터 추상화 및 데이터 모델 3단계 스키마 구조 아래의 세 단계는 각각 자신 레벨에서 변화하더라도 다른 레벨에 영향을 미치지 않는 데이터 독립성을 지닌다. 물리적 레벨 논리적 레벨 뷰 레벨 ..
[42서울] Libft 함수 정리와 후기
·
대외활동/42서울
서론42서울 본과정 첫 번째 과제인 Libft에 대해 정리해보려 한다. Libft는 다양한 기본 함수들을 직접 구현하여 C 언어의 기초를 이해하기 위해 주어지는 과제이다. Libft에서는 문자열 처리, 메모리 할당 및 해체, 리스트 조작 등의 기본적인 작업을 다룬다. 예를 들어, strcpy, strlen, strdup과 같은 문자열 처리 함수들을 구현하고, malloc 및 free 함수를 사용하여 동적 메모리 할당과 해제를 다룬다. 또한 자료구조의 기본인 리스트를 조작하는 함수를 다룬다. 구현해야하는 함수 명세함수 이름프로토타입반환 값 의미설명ft_memsetvoid *ft_memset(void *s, int c, size_t n);메모리 주소 (s)주어진 메모리 영역을 지정한 값 (c)으로 설정한다...
[42서울] push_swap 그리디 알고리즘
·
대외활동/42서울
서론 2서클 과제인 push_swap에 대해 정리해보려 한다. push_swap은 인자로 받은 숫자들을 두 개의 스택(stack_a, stack_b)을 이용해 최대한 적은 명령어를 사용하여 정렬하는 알고리즘을 구현하는 과제이다. 필자는 push_swap 평가를 처음 갔을 때 그리디 알고리즘을 사용하여 이 과제를 해결할 수 있다는 말을 듣고 매력적으로 느껴 그리디 알고리즘을 선택하게 되었다. push_swap 그리디 알고리즘 그리디 알고리즘은 매 결정마다 그 순간 최적의 결정을 내리는 과정을 반복해 최종적인 해답에 도달하는 알고리즘이다. 제한된 명령어만 사용할 수 있는 push_swap에 어떻게 그리디 알고리즘을 적용시킬 수 있을까? 답은 정렬되어 있지 않은 stack_b의 원소를 정렬된 stack_a로 ..
[42서울] Born2beroot 개념 정리 2
·
대외활동/42서울
목차 파티션 - LVM sudo UFW SSH cron 과제 tip 명령어가 동작하지 않는다면 앞에 sudo를 추가해 보세요. 파티션 - LVM 하드디스크 파티션은 하드디스크를 여러 공간으로 나누어 사용하는 기술이다. 파티션 확인 lsblk LVM LVM(Logical Volume Manager)은 공간을 효율적으로 관리하기 위한 커널의 한 부분이다. LVM은 여러 디스크 공간 및 자투리 공간을 합쳐서 하나로 만들 수 있게 해 준다. 다른 디스크의 공간을 추가해서 사용 가능하다. 예시를 통해 알아보자. 기존 파티션은 하드디스크를 물리적으로 A구역, B구역... 이런 식으로 나누어 사용하는 반면, LVM은 물리적인 하드디스크를 작은 단위로 쪼개어 관리하며, 이들을 논리적으로 같은 공간으로 묶어 사용한다...
[42서울] Born2beroot 개념 정리 1
·
대외활동/42서울
목차 서론 가상머신과 운영체제 사용자 관리 패스워드 정책 설정 호스트 서론 born2berroot(본투비)는 시스템(운영체제) 관리에 관련된 과제이다. 가상머신 개념 및 관련 용어, UFW 서비스, SSH 서비스, 유저 및 그룹 관리, 패스워드 정책 설정, 하드디스크 파티션과 LVM, SUDO, Cron 등에 대해서 배울 수 있다. 42서울의 다른 과제에 비해 코딩이 어렵기 보다는 처음 접하는 개념과 익숙하지 않은 환경에 공부할 것도 많고 은근히 까다로울 수 있는 과제이다. 이 포스팅에서는 본투비를 진행하며 배웠던 개념들에 대해서 정리해보겠다. 명령어가 동작하지 않는다면 앞에 sudo를 추가해보세요. 가상머신과 운영체제 가상머신 동작 원리 가상머신은 하이퍼바이저를 통해 동작 하이퍼 바이저 유형 TYPE ..
[Spring] DB에서 조건 검색 하는 방법 (Specification, Predicate)
·
백엔드/Java + Spring
오늘은 스프링JPA에서 DB 조건 검색을 하기 위해 제가 사용했던 코드들을 리뷰해보겠습니다. Repository @Repository public interface SubjectRepository extends JpaRepository, JpaSpecificationExecutor { } 리포지토리는 JpaRepository 사용 Specification을 사용하기 위해 JpaSpecificationExecutor를 extends 해주시면 됩니다. Specification, Dto public class SubjectSpecification { public static Specification subjectFilter(GetSubjectListRequestDto requestDto) { return (r..
[트러블 슈팅] 엔티티 이름을 User로 지으면 안되는 이유와 해결 방법 (H2 버전 2.x.x)
·
백엔드/Java + Spring
코드@Entity@Getter @Setterpublic class User {    @Id @GeneratedValue    @Column(name = "user_id")    private Long userId;    @Column(name = "user_name")    private String userName;} 발생한 오류Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000a    create table [*]user (\000a        user_id bigint not null,\000a        user_name varchar(255),\000a        primary key ..
[네트워크] #25 학교에서 노트북으로 구글 웹페이지에 접속하는 과정
·
전공/네트워크
목차 학교에서 노트북으로 구글 웹페이지에 접속하는 과정 DHCP ARP TCP HTTP Summary 1. 학교에서 노트북으로 구글 웹페이지에 접속하는 과정 1-1. DHCP 노트북을 연결하려면 자체 IP 주소, first-hop 라우터의 주소, DNS 서버의 주소 필요: DHCP 사용 UDP로 캡슐화, IP로 캡슐화, 802.3 이더넷으로 캡슐화된 DHCP 요청 DHCP 서버를 실행하는 라우터에서 수신된 LAN의 이더넷 프레임 브로드캐스트(대상-FFFFFFFFFFFF) 이더넷에서 IP로 디먹스 되고 UDP에서 DHCP로 디먹스 됨 DHCP 서버가 DHCP ACK를 공식화함 클라이언트의 IP 주소를 포함 클라이언트용 first-hop 라우터의 ip주소를 포함 DNS 서버의 이름과 IP 주소 DHCP 클라..