반응형

Back-end 46

[스프링 핵심 원리] [01. 객체 지향 설계와 스프링] 05. 좋은 객체 지향 설계의 5가지 원칙(SOLID)

SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP: 단일 책임 원칙(Single responsibility principle) OCP: 개방-폐쇄 원칙(Open/closed principle) LSP: 리스코프 치환 원칙(Liskov substitution principle) ISP: 인터페이스 분리 원칙(Interface segregation principle) DIP: 의존관계 역전 원칙(Dependency inversion principle) SRP: 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으..

Back-end/SQL 2021.04.05

[SQL로 하는 데이터 관리] 03. Foreign Key 제대로 사용하기

Foreign Key 제대로 사용하기 지금 delivery 테이블의 order_id 컬럼을, customer_order 테이블의 id 컬럼을 참조하는 물리적 Foreign Key로 설정하려고 합니다. SQL 문을 써서 직접 Foreign Key를 설정해보세요. 이때 Foreign Key의 이름은 fk_delivery_order로 지으시고, 부모 테이블의 row가 삭제되거나, Foreign Key에 의해 참조당하는 컬럼의 값이 갱신될 때에 관한 정책은 ON DELETE의 경우 그 row를 참조하던 자식 테이블의 row들의 컬럼에 NULL이 들어가도록 설정하고, ON UPDATE의 경우 그 row를 참조하던 자식 테이블의 row들의 컬럼도 같은 값으로 갱신되도록 설정하세요. ALTER TABLE delive..

Back-end/SQL 2021.03.31

[SQL로 하는 데이터 관리] 02. 테이블 다루기

기존 테이블로 새 테이블 만들기 특히 20세 이상 30세 미만의 회원들이 남긴 리뷰들만 따로 beta_review_20s라는 이름의 테이블로 저장해두려고 합니다. 이 테이블의 컬럼 구조와 똑같은 구조를 가진 테이블을 새로 만들고 거기에 20대가 남긴 리뷰만 넣으면 될 것 같네요. SQL 문으로 직접 이 작업을 수행해보세요. CREATE TABLE beta_review_20s LIKE beta_review; INSERT INTO beta_review_20s SELECT * FROM beta_review WHERE age >= 20 AND age < 30; 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.30

[SQL로 하는 데이터 관리] 02. 테이블 다루기

컬럼에 속성 주기 각 컬럼의 현재 데이터 타입 및 속성은 다음과 같습니다. id : INT NOT NULL AUTO_INCREMENT isbn : VARCHAR(50) NULL page : INT NOT NULL author : VARCHAR(20) NOT NULL kind : VARCHAR(10) NOT NULL location : VARCHAR(10) NOT NULL 이 테이블에 관해서 다음과 같은 작업을 수행하세요. a. isbn 컬럼에 NOT NULL 속성과 UNIQUE 속성 주기 b. page 컬럼에 0보다 큰 값이 들어와야 한다는 제약사항 설정하기(제약 사항 이름은 page_rule 이라고 짓기) c. kind 컬럼의 이름을 genre_code로 바꾸면서, 동시에 그 데이터 타입을 INT로 설..

Back-end/SQL 2021.03.30

[SQL로 하는 데이터 관리] 02. 테이블 다루기

컬럼 구조 변경 과제 이 테이블에 다음과 같은 작업을 하려고 합니다. a 작업 : name 컬럼의 이름을 model로 수정 b 작업 : size 컬럼의 데이터 타입을 INT에서 DOUBLE로 수정 c 작업 : brand 컬럼을 삭제 d 작업 : stock 컬럼(데이터 타입이 INT이고, NOT NULL 속성을 가진 컬럼) 추가 일단 실행기에서 DESCRIBE 문으로 현재 각 컬럼의 데이터 타입과 속성을 확인하시고, 그 다음 위의 4가지 작업을 순서대로 수행해보세요. 이때 작업 내용에 없는 컬럼의 기존 속성들은 그대로 유지해주세요. ALTER TABLE shoes RENAME COLUMN name TO model; ALTER TABLE shoes MODIFY size DOUBLE NOT NULL; ALTE..

Back-end/SQL 2021.03.29

[SQL로 하는 데이터 관리] 01. 데이터베이스와 테이블 구축

데이터 갱신과 삭제 (1) ‘남성정장 상하의 세트' 중고 물품이 너무 팔리지 않아서인지 판매자가 삭제해버렸습니다. 이 row의 is_deleted 컬럼의 값을 Y로 갱신해주세요. (2) is_deleted 컬럼의 값이 Y이면서, 그 게시글 업로드일이 2020년 7월 5일 기준으로 365일보다 더 오래된 상품들의 row를 물리 삭제하세요. *게시글 업로드 날짜는 upload_date 컬럼에 있습니다. 2020년 7월 5일 기준으로 365일보다 더 오래됐는지 확인하려면 날짜 함수를 사용해야 확인할 수 있습니다. SQL 토픽 1의 다음 노트의 내용 중 DATEDIFF라는 함수의 사용법을 읽고 직접 사용해보세요. UPDATE item SET is_deleted = 'Y' WHERE id = 3; DELETE F..

Back-end/SQL 2021.03.29
반응형
LIST