훌륭한 개발자가 되기 위하여
파일데이터 시스템 본문
파일 시스템
컴퓨터가 데이터를 저장하고 관리하는 방법이며, 파일과 디렉터리를 계층적으로 관리하며, 각 파일에는 이름, 크기, 위치, 권한 등의 정보가 포함된다.
파일 시스템의 구성

파일
컴퓨터에서 데이터를 저장하는 데 사용 되는 단위
파티션
연속된 저장 공간을 하나 이상의 연속되고 독립적인 영역으로 나누어 사용할 수 있도록 정의한 규약
하나의 물리적 디스크 안에 여러 파티션을 두는 게 일반적이지만, 여러 물리적 디스크를 하나의 파티션으로 구성하기도 한다. ex ) C드라이브, D드라이브
디렉토리
파일과 다른 디렉토리를 포함할 수 있는 컨테이너
fun main() {
val path = System.getProperty("user.dir")
println("디렉토리명을 입력해주세요.")
val dirName = readln()
// 디렉터리 생성
val directory = File(path,dirName)
// 중복된 디렉토리가 있는지 확인
if (!directory.exists()) {
directory.mkdir()
}
else {
println("해당 디렉토리가 이미 존재 합니다.")
}
// 디렉터리 내 파일 생성
println("파일명을 입력해주세요.")
val fileName = readln()
val file = File("$directory", "$fileName.kt")
file.writeText("안녕하세요 파일 안에 작성해볼게요.")
// 디렉터리 내용 출력
directory.listFiles()?.forEach {
println(it.name)
}
// 파일 및 디렉터리 삭제
// file.delete()
// directory.delete()
}
![]() |
HTTP Request와 Response

HTTP request : 클라이언트가 서버에게 자원을 요청하는 메시지

HTTP 프로토콜의 요청 라인
요청 방식 (GET, POST, PUT, DELETE) / URL
Header
요청에 대한 부가적인 정보
|
![]() |
Body (본문)
POST, PUT, DELETE 요청과 같이 요청과 함께 전달되는 데이터를 포함한다.
요청과 함께 전달되는 데이터가 없을 경우 Body가 없을 수도 있다.
HTTP response : 서버가 클라이언트에게 자원을 전달하는 메시지

HTTP 프로토콜의 상태 라인
응답 상태 코드 (200) / 메세지
Header
응답에 대한 부가적인 정보
|
![]() |
Body (본문)
서버에서 클라이언트로 전송되는 데이터
서버가 클라이언트에게 응답할 데이터가 존재할 경우 해당 데이터를 담고 있다.
http 응답코드
https://dev-cho.tistory.com/78
HTTP 응답 코드 한 번에 정리하기: 100~599 까지 한 번에 정리하기
HTTP와 응답 코드 HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간의 통신을 위한 프로토콜입니다. HTTP 응답 코드는 웹 서버가 클라이언트에게 응답할 때, 상태 코드로 사용하는 3자리 숫자
dev-cho.tistory.com
SQL(Structed Query Language)
구문 언어로서 데이터베이스 관리 시스템 (DBMS)에서 데이터를 조작하고 검색하기 위한 표준화된 언어
특징
1. SQL은 선언적 언어로 (declarative language, 명령어를 이용해서 결과를 도출하는 것이 아니라 원하는 결과를 명시하고 그 결과를 얻는 방식의 언어) 사용자는 원하는 결과를 지정하고 어떻게 얻을지에 대한 절차를 명시할 필요가 없습니다. 대신, SQL 엔진은 데이터베이스에서 데이터를 검색하고 연산을 수행하는 방법을 최적화합니다.
2. SQL은 데이터베이스에서 데이터를 조작하는 명령어를 제공합니다. 데이터의 삽입, 수정, 삭제, 검색 및 관리를 위한 다양한 기능을 제공합니다.
3. SQL은 ANSI (American National Standards Institute) 와 ISO (International Organization for Standardization)에서 표준화된 언어로, 대부분의 RDBMS (Relational Database Management System )에서 사용할 수 있습니다.
다수의 사용자가 동시에 데이터베이스에 접근하여 데이터를 처리할 수 있습니다.
5. SQL은 데이터베이스에 대한 보안 기능을 제공합니다. 데이터베이스 접근 권한 관리, 암호화 등의 기능이 포함됩니다.
6. SQL은 데이터베이스 크기가 커지더라도 성능을 유지할 수 있는 확장성을 가지고 있습니다. 대규모 데이터베이스 환경에서도 빠르고 효율적인 데이터 관리가 가능합니다.
장점
1. SQL은 직관적인 구문과 명령어를 사용하여 데이터베이스에서 원하는 정보를 검색하고 조작할 수 있습니다. SQL을 사용하면 복잡한 데이터 검색 및 조작도 상대적으로 쉽게 수행할 수 있습니다.
2. SQL은 데이터베이스에서 중복된 데이터를 방지하고 데이터 간의 관계를 설정하여 데이터 일관성을 유지할 수 있습니다. SQL은 데이터 암호화, 접근 권한 관리, 로그인 인증 등의 기능을 제공하여 데이터 보안을 유지할 수 있습니다.
3. SQL을 사용하면 데이터를 효율적으로 관리할 수 있습니다. 데이터베이스 내의 데이터를 빠르게 수정, 삭제, 추가할 수 있으며, 인덱스, 뷰 등의 기능을 통해 데이터 검색과 분석 작업을 빠르고 쉽게 할 수 있습니다.
4. SQL은 대부분의 데이터베이스 관리 시스템에서 사용되는 표준 언어이기 때문에 다양한 플랫폼에서 사용 가능합니다. SQL은 대규모 데이터를 처리하는 데에 적합합니다. SQL의 쿼리를 최적화하여 빠른 처리 속도를 보장할 수 있습니다.
단점
생각보다 복잡한 쿼리
작성 다중 조인, 서브쿼리, 윈도우 함수 등을 사용하는 복잡한 쿼리를 작성할 때, 쿼리를 최적화하는 것이 어려울 수 있습니다. 예를 들어, 다중 조인이 있는 쿼리에서는 쿼리 실행 계획을 최적화하는 것이 중요합니다.
성능 이슈와 데이터 저장 용량
대규모 데이터 처리에서는 SQL의 처리 속도가 느려질 수 있습니다. 예를 들어, 일부 데이터베이스 시스템에서는 큰 테이블에 대한 쿼리를 실행하는 데 많은 시간이 소요될 수 있습니다. 또는 SQL은 데이터를 저장할 때 많은 용량을 차지할 수 있습니다. 예를 들어, 텍스트 데이터를 저장하는 경우에는 데이터 저장 용량이 많이 필요할 수 있습니다.
데이터 일관성 유지
SQL은 데이터 일관성을 유지하기 위해 제약 조건, 트랜잭션 등을 제공하지만, 데이터 입력 실수나 데이터베이스 구조의 오류로 인해 데이터 일관성이 유지되지 않을 수 있습니다. 예를 들어, 잘못된 데이터 입력으로 중복된 데이터가 발생하는 경우가 있을 수 있습니다.
복잡한 데이터 모델링
SQL은 데이터 모델링을 위한 다양한 개념을 제공하지만, 복잡한 데이터 모델링을 수행하기 위해서는 다양한 개념을 이해하고 복잡한 데이터 모델을 설계해야 합니다. 예를 들어, ER 다이어그램을 작성하고 테이블 간의 관계를 설계하는 것이 어려울 수 있습니다.
인기 있는 RDBMS / SQL 데이터베이스
DB2
Db2는 IBM에서 개발한 관계형 데이터베이스 관리 시스템입니다.
Db2는 SQL 기반으로 작동하며, 데이터를 관리하고 검색하는 데 있어서 매우 효율적입니다.
MySQL
MySQL은 초기에 스웨덴의 회사인 MySQL AB에서 개발되었으며, 현재는 오라클(Oracle)이 소유하고 있습니다. MySQL은 다양한 운영 체제에서 사용할 수 있으며, 웹 애플리케이션 및 대규모 엔터프라이즈 솔루션에서 널리 사용됩니다. MySQL은 오픈 소스로 제공되어 무료로 사용할 수 있으며, 다양한 커뮤니티에서 지원하고 있습니다.
Oracle Database
Oracle Database는 대규모 비즈니스 환경에서 가장 많이 사용되는 데이터베이스 중 하나입니다. Oracle Database는 대규모 데이터베이스 환경에 적합합니다. 클러스터링, 데이터베이스 파티셔닝, 가상화, 그리고 클라우드 환경에서도 동작 가능합니다.
Azure SQL Database
Azure SQL Database는 Microsoft Azure에서 제공하는 클라우드 기반의 관계형 데이터베이스 서비스입니다. Azure SQL Database는 SQL Server 엔진 기반으로 구축되어 있으며, 사용자는 서버의 관리 없이 데이터베이스를 생성하고 관리할 수 있습니다.
SQL 기본 문법 정리
[MySQL] - SQL 기본 문법 정리 - (SELECT, WHERE, ORDER BY ..)
- SELECT 문의 기본 형식은 다음과 같다.SELECT 열_이름 FROM 테이블_이름 WHERE 조건식 GROUP BY 열_이름 HAVING 조건식 ORDER BY 열_이름 LIMIT 숫자 📌 USE - 스키마 (데이터베이스) 선택-- USE '스키마명' USE market
rachel0115.tistory.com
데이터베이스(DB, database)
여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임
데이터베이스 관리 시스템(DBMS, DataBaseManagementSystem)
다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
데이터 불일치 문제❓
데이터를 파일로 저장했을 때 파일을 수정하는 도중에 해당 파일을 불러온다면 데이터가동기화 문제가 발생하여 데이터가 불일하는 문제
DBMS 특징
데이터베이스 관리 시스템은 파일 시스템의 문제점을 해결하기 위해 만들어졌기 때문에
데이터베이스 관리 시스템의 특징은 곧 파일 시스템의 단점을 의미한다.
1. 데이터의 독립성 ( 파일 시스템은 데이터와 응용 프로그램이 상호 의존 관계에 있다. )
물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.
논리적 독립성 : 데이터베이스는 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.
2. 데이터의 무결성
여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다.
3. 데이터의 보안성
허가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
4. 데이터의 일관성
연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다.
또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
5. 데이터의 중복 최소화
데이터베이스는 데이터를 통합해서 관리함으로써 데이터 중복 문제를 해결할 수 있다.
'Kotlin' 카테고리의 다른 글
| Kotlin에서의 Exception와 Error 개념 정리 (0) | 2025.08.17 |
|---|---|
| 비동기 처리 (0) | 2024.07.29 |
| 동기와 비동기, Thread와 Coroutine 그리고 여러 가지 패턴 (0) | 2024.07.28 |
| 객체 지향 프로그래밍(OOP)에 대하여 (0) | 2024.07.28 |
| 함수형 프로그래밍과 Sealed Class (2) | 2024.07.25 |



