일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코틀린 함수
- 아펠가모
- 스페인 준비물
- 스페인
- 바르셀로나
- @Component
- git명령어
- 본식후기
- 관심지향프로그래밍
- elk
- 마드리드
- http상태코드
- HTTP
- HTTP #웹기술
- 세비야
- 400에러
- b-tree index
- 코프링
- Kotlin
- kotiln
- 스프링 AOP
- Srping AOP
- 코틀린
- sprintboot
- 아펠가모 선릉
- 아펠가모선릉
- c# scv
- kopring
- 그라나다
- db index
- Today
- Total
목록웹기술 개발자 되기 (12)
끄적이는 메모장
데이터베이스에 데이터를 아무렇게 막 저장하면 어떤 일이 일어날까 만약 학교에서 학생 데이터를 이렇게 저장한다면? 1) 출결 데이터 번호 이름 전화번호 1 김철수 111-222-3333 2 김영희 111-222-3456 2) 성적 데이터 번호 이름 성적 전화번호 1 김철수 A 111-222-3333 2 김영희 B 111-222-3456 철수의 전화번호를 바꾸기 위해 두 테이블을 모두 수정해야 하는 불편함이 있고 실수로 인해 출결 데이터의 데이터만 수정함으로써 데이터의 무결성이 깨질 수 있음 정규화란? - 하나의 테이블에서의 데이터 삽입, 삭제, 변경이 정의된 관계들로 인해 데이터베이스의 나머지 부분으로 전파되는 것 - 불피요하게 중복된 데이터를 없애고 데이터 변경 시 발생할 수 있는 이상 현상을 제거하는 ..
데이터베이스를 여러 질의어를 통해 사용을 하고 이를 통해 데이터를 변화 시킴 항상 하나의 접근만 일어난다고 하면 데이터가 무결하게 보장이 되겠지만, 데이터베이스는 여러 접근이 동시에 일어나고 데이터의 변화를 일으키는 수행에 대해서 믿을 수 있는 시스템이 되는 것이 중요함 예를 들어 A라는 사람의 계좌에 들어있는 100만 원에 대한 금액에 대한 수행 B, C를 생각해보자 - 수행 B는 금액을 조회한 후 50만 원을 인출하는 동작을 함 - 수행 C는 금액을 조회한 후 60만 원을 인출하는 동작을 함 수행 B가 계좌를 조회 - 100만 원 수행 C가 계좌를 조회 - 100만 원 수행 B가 50만 원을 인출 후 저장 - 계좌(50만 원) 수행 C가 60만 원을 은출 후 저장 - 계좌(40만 원) - 최종적으로 ..
RDBMS에서 Table의 크기가 너무 크다면 관리 측면에서 이슈가 발생할 수 있음 이슈는 용량의 한계와 성능의 저하를 뜻함 파티셔닝이란? - 거대한 Table을 작은 단위로 나누어 관리하는 기법 - 데이터베이스를 분산처리 하는 것 성능적 측면에서 Query의 성능을 향상시킴, Full Scan을 줄임(Access범위의 축소), 대용량 데이터의 쓰기에 효율적, DML 경합 분산 (SELECT, INSERT, UPDATE, DELETE가 분산 될 수 있음) 가용성 측면에서 전체 데이터에 대한 훼손 가능성이 줄어듦(영역별 독립적인 백업이나 복구가 가능), 데이터 가용성이 향상 관리용이성 측면에서 작은 Table의 관리가 큰 Table의 관리보다 용이 장점 - 가용성이 좋음 - 관리가 용이 - 파티션별 장애대..
우리가 RDBMS에서 특정 값을 찾기 위해서는 순차적으로 탐색을 시도함 (Full Scan) 즉, 데이터가 많으면 많을수록 검색 시간이 증가하는 비효율이 발생을 함 Index란 - 테이블에 대한 검색 속도를 높여주는 자료구조를 말함 - 특정 값을 빠르게 찾기 위해 제공되는 기술 - 이를 위해 하나의 컬럼 혹은 여러 개의 컬럼을 인덱스로 생성 할 수 있음 예시) 아래와 같은 스키마의 데이터가 몇 만 건 있다고 가정해보자 - 인천에 사는 사람을 검색하고자 할 때 모든 데이터를 다 스캔해야 함(full scan) 번호 이름 지역 나이 전화번호 1 철수 서울 30 xx-xox-xxx 2 영희 서울 25 xx-xxo-xxx 3 은우 인천 29 xx-xxx-oxx 4 나래 인천 25 xx-xxx-xox 5 도현 경..
서버 개발자에서 웹 기술 개발자가 되기 위한 스텝. Spring 이해하기 (2) : Spring의 구조에서 Spring AOP 영역 Spring AOP이란? - 관점지향 프로그래밍 - 코드의 반복을 피하기 위해 공통의 기능을 분리시켜 하나의 모듈로 관리 - 주요 로직은 변화하지만 공통 기능은 변화 없이 적용이 됨 주요개념 Aspect 공통기능으로 관심사를 모듈화 한 것 Target Aspect를 적용할 대상 Advice 실질적으로 어떤 수행을 할지 정의가 된 모듈을 의미 Jointpoint Advice가 적용될 수 있는 위치 Pointcut Jointpoint의 상세 실행 위치로 실행 될 함수에 대한 위치를 execution으로 정의 실행흐름 - Proxy를 통해 간접적으로 접근 공통기능 (1) 핵심기능..
서버 개발자에서 웹 기술 개발자가 되기 위한 스텝. Spring 이해하기 (2) : Spring의 구조에서 Spring Core의 영역 Bean : 스프링 컨테이너에 의해 생성되는 자바의 "객체" - 설정 메타데이터(XML)에 의해 생성이 됨 Bean의 속성 : 속성에 설정된 정보를 토대로 객체가 생성이 됨 - class : 자바의 클래스 명 - id : Bean의 식별자 - scope : 객체의 범위 (기본은 singleton) - constructor-arg : 객체 생성시 생성자에 전달할 인수 (constructor injection) - property : 생성시 bean setter에 전달할 인수 (setter injection) - init-method : 객체 생성시 실행되는 함수 - des..
서버 개발자에서 웹 기술 개발자가 되기 위한 스텝. Spring 이해하기 (1) Spring Framework란 : 자바객체를 담고 직접 관리하는 IOC(Inversion of Control)기반의 경량의 프레임워크 Spring Framework의 구조 Spring AOP 공통기능을 분리, 관점지향 프로그래밍 Spring ORM Hibernate, JDO 등을 지원 Spring Web Web 응용 Context Spring MVC 웹응용 프로그래밍 Spring DAO 트랜잭션, JDBC 등을 지원 Spring Context 쉬운 개발 지원 (JNDI, EJB... ) Spring Core Bean Container (객체의 구성, 의존성... 등을 처리) Spring Framework의 특징 - 크기와 ..
서버 개발자에서 웹 기술 개발자가 되기 위한 스텝. HTTP 이해하기 (5) REST API 란? - HTTP 프로토콜을 사용하여 정보를 주고받는 웹의 장점을 최대한 활용한 아키텍쳐 - HTTP 프로토콜의 표준을 지킨다면 어느 플랫폼에서나 호환됨 - URI를 통해 자원을 정의하고 활용할 수 있음 - Method를 통해 API의 의도를 명확히 알 수 있음 - 서버와 클라이언트 모델을 지킴 REST 아키텍쳐의 조건 - Client-Server 구조 : 서버는 일관적인 API를 제공하며 클라이언트는 API를 이용함으로써 역할이 구분됨 - Stateless : 서버는 클라이언트의 요청을 처리만하며 상태정보를 저장하지 않음. (HTTP의 특성) - Cacheable : 캐싱을 통해 클라이언트의 요청에 빠르게 응답..