개발공부/CS Study (9) 썸네일형 리스트형 데이터 베이스 제약조건과 정규화 정규화(Normalization)는 데이터베이스 설계에서 중요한 개념 중 하나로, 중복을 제거하고 데이터를 분리하여 데이터 중복을 최소화하고 데이터의 일관성을 유지하는데 목적이 있습니다. 데이터베이스 제약조건과 정규화는 밀접한 관계를 가지고 있습니다. 정규화는 데이터의 중복을 제거하고 데이터의 무결성(integrity)을 보장하기 위한 방법이며, 제약조건은 데이터의 무결성을 보장하기 위한 규칙입니다. * 데이터베이스 제약조건 데이터베이스에서 제약 조건(Constraint)은 데이터의 무결성을 보장하기 위해 설정하는 규칙으로, 특정한 조건을 만족하지 않는 데이터의 삽입, 수정, 삭제를 방지합니다. 데이터베이스에서 주로 사용되는 제약 조건에는 다음과 같은 것들이 있습니다. Primary Key Constra.. JDBC문법 데이터베이스 접속(SQL문 전송) - Statements JDBC(Java Database Connectivity)는 자바를 이용해 데이터베이스에 접속하고 SQL 문을 실행할 수 있게 해주는 API입니다. JDBC에서는 세 가지 종류의 Statements를 제공합니다. 1. statement - 일반적인 sql쿼리를 실행 2. preparedStatement - 동적 또는 매개변수가 필요한 sql쿼리를 실행 3. callableStatement - 저장된 프로시져를 실행 1. Statement Statement 객체는 데이터베이스에 SQL 문을 보내기 위한 가장 기본적인 객체입니다. Connection 객체의 createStatement() 메서드를 호출하여 생성할 수 있습니다. SQL Injection 등의 보안 문제가 있을 수 있으므로, 인자로 전달된 문자.. JDBC 문법 JDBC(Java Database Connectivity)는 자바를 이용해 데이터베이스에 접속하고 SQL 문을 실행할 수 있게 해주는 API입니다. JDBC를 사용하여 데이터베이스에 접속하고 데이터를 조회, 삽입, 갱신, 삭제하는 등의 작업을 할 수 있습니다. JDBC 문법은 대략 다음과 같습니다. * JDBC 드라이버 로드 Class.forName("드라이버 이름"); * 데이터베이스 연결 Connection conn = DriverManager.getConnection("jdbc:드라이버 이름:DB 연결 정보"); * SQL 문 실행 Statement stmt = conn.createStatement(); // Statement 객체 생성 ResultSet rs = stmt.executeQuery(".. 4. 데이터베이스(3) - 트랜잭션과 무결성 트랜잭션 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말함 데이터 베이스에 접근하는 방법은 쿼리, 즉 여러 개의 쿼리들을 하나로 묶는 단위를 말함. 이에 대한 특징은 원자성, 일관성, 독립성, 지속성이 있으며 이를 한꺼번에 ACID 특징이라고 한다. 1. 원자성 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징 ' All or Nothing ' 내가 친구한테 10000원을 보낸다면, 내 잔액 -10000원 친구 잔액 +10000원 이 둘중 하나만 처리된다면 원자성(Atomicity) 위반이다. 취소 했을 때에도 거꾸로 모든 작업이 처리되어야 한다. 또한, 트랜잭션 단위로 여러 로직들을 묶을 때 외부 API를 호출하는 것이 있으면 안된다. 만약 있다면 .. 4. 데이터 베이스 (2) - ERD와 정규화 과정 ERD는 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것. 서비스를 구축할 시 가장 먼저 신경 써야 할 부분. ERD의 중요성 ERD는 시스템의 요구 사항을 기반으로 작성되며 이 ERD를 기반으로 데이터 베이스를 구축한다. 데이터 베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요할 경우 설계도 역할을 담당. ERD는 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용할 수 있지만 비정형 데이터를 충분히 표현할 수 없다는 단점이 있다. 정규화 과정 정구화 과정은 릴레이션간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정이다. 더보기 릴.. 네트워크(2) 3. 네트워크 기기 3.1 네트워크 기기의 처리 범위 네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있다. 그리고 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가하다. 예를 들어 L7 스위치는 애플리케이션 계층을 처리하는 기기로, 그 밑의 모든 계층의 프로토콜을 처리할 수 있습니다. 하지만 AP는 물리 계층밖에 처리하지 못한다. • 애플리케이션 계층: L7 스위치 • 인터넷 계층: 라우터, L3 스위치 • 데이터 링크 계층: 브리지, L2 스위치 • 물리 계층: NIC, 리피터, AP 3.2 애플리케이션 계층을 처리하는 기기 애플리케이션 계층을 처리하는 기기로는 L7 스위치가 있다. L7 .. 네트워크 (1) 1. 네트워크의 기초 네트워크란 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다. 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미함. 1.1 처리량과 지연 시간 네트워크를 구축할때는 좋은 네트와크를 구축해야하는데 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크를 말한다. 처리량 처리량이란 링크를 통해 전달되는 단위 시간당 데이터양. 단위로는 bps(bit per second)를 쓴다. 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받는다. * 대역폭 - 주어진 시간 동안.. 디자인 패턴 (2) - 프로그래밍 패러다임 프로그래밍 패러다음은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론이다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호 작용하는 객체들의 집합으로 볼 수 있게하는 반면에, 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각할 수 있게 해준다. 프로그래밍 패러다임은 크게 선언형, 명령형으로 나눈다. 선언형은 함수형이라는 하위 집함을 갖고, 명령형은 다시 객체지향, 절차지향으로 나눈다. 2.1 선언형과 함수형 프로그래밍 선언형 프로그래밍이란 '무엇을' 풀어내는가에 집중하는 패러다임 + 프로그램은 함수로 이루어진 것이다 라는 명제가 담겨 있는 패러다임이다. 함수형프로그래밍은 선언형 프로그래밍의 일종이다. 함수형 프로그래밍은 작은 '순수 함수'들을 블록.. 이전 1 2 다음