전체 글 16

왜 파일시스템 대신 데이터베이스인가? - 이것이 컴퓨터 과학이다 📖

생각해보니 소프트웨어학부 복수전공 하면서 Java, Python 같은 개발 언어 위주로 공부했지 CS 관련해서는 소홀히 한 것 같아 요즘 다시 공부하고 있다. '이것이 컴퓨터 과학이다' 책에서 좋은 내용을 발견해서 정리해보려고 한다. 왜 파일 시스템이 아니라 데이터베이스를 사용하는가?데이터베이스를 공부하면서도, 그리고 일을 하면서도 DBMS를 그저 당연하게 써왔다. 오라클, MySQL, PostgreSQL 등 쿼리를 날리고 결과를 받는 것만 생각했지 '왜 파일 시스템 대신 DB를 쓰는가'라는 질문은 해본 적이 없다. '이것이 컴퓨터 과학이다' 6장에서 이 질문을 던졌다. 그리고 마침 최근에 오라클 데이터베이스 구조에 대해 공부 중인데 맞닿는 지점이 있어 내 나름의 방식으로 답을 해본다. 파일로 관리하면..

Database 2026.04.23

2026 SQLD 자격증을 취득하며

2026년 3월 SQLD 시험을 응시했다. 준비 과정과 회고를 기록하려고 한다.시험은 총 2번 봤고 처음엔 57점으로 떨어졌다. 준비를 거의 안 하기도 했고 그마저도 암기식의 공부여서 그런지 대차게 떨어졌다!! 이번에는 지난 날의 게으름을 반성하며 2달 정도 준비 기간을 잡고 다시 시작했다. 공부 방법 확실히 반복이 중요하다고, 첫 시험 때 개념 공부하면서 '이게 뭔 소리지?' 아리송했던 부분이 이번 회차에서는 가볍게 읽혔다. 특히 지난번에는 정규화 부분에서 계속 막혀서 일단 시험을 위해 달달 외웠는데, 이번에는 '이런 거였구나'하고 이해할 수 있었다. 적어도 3번은 넘게 반복하고 또 직장에서 SQL을 간간히 써왔으니 자연스럽게 체득이 되었나보다. 도서책은 SQL자격검정 실전문제(일명 노랭이) + 이기적..

Database 2026.04.23

LG그램 15인치 램 추가하기, 삼성 RAM 8GB 추가,

노트북 사양내 노트북은 LG그램 15인치이고 CPU는 인텔 i5, RAM은 8GB가 기본 내장 되어있다. 2020년에 구매했던 모델이다. RAM 추가 계기잔고장없이 몇 년간 잘 써왔던 노트북이다. 그런데 최근에 노트북 버벅거림이 잦고 속도가 느린 듯한 기분이 들어 작업관리자를 열어 확인해보았다. CPU는 문제가 없었으나 메모리 사용량이 87~89%까지 치솟았다.. 윈도우에서는 20%를 가상메모리를 활용하는 것으로 알고있는데 그렇다면 나는 거의 현재 메모리의 110% 이상을 사용하는 것과 다름이 없었다. 기본 8GB 램 하나만으로는 노트북이 버거워 하는 것 같아서 새로 추가 하게 되었다. RAM 모델사실 그 전까지 컴퓨터 부품을 하나도 몰랐던 나는 램 추가하면 엄청 비싼 거 아닐까 생각했다. 그런데 쿠팡에..

카테고리 없음 2024.01.06

[네트워크] IP 주소 종류와 주소 체계, 공인 IP, 사설 IP, 외부 IP, 내부 IP

목차인터넷과 IP 주소공인 IP, 사설 IPIP 주소를 사용하는 이유 1. 인터넷과 IP 주소 1.1 인터넷과 네트워크 인터넷이라는 건 무엇일까? 매일같이 인터넷을 사용하고 있지만 막상 말로 정의내리려고 하니 막연하게만 느껴졌다. 그래서 인터넷과 IP 주소의 개념을 다룬 유튜브, 책으로 짤막하게나마 공부한 내용을 정리하는 겸 글로 기록해본다! 인터넷이라는걸 알기 전에, '네트워크'의 개념을 먼저 알아야 한다. 여기서 말하는 네트워크란 '컴퓨터 네트워크'를 의미한다. 컴퓨터 네트워크를 가장 쉽게 설명하자면, 두 대 이상의 컴퓨터가 서로 연결되어 있고, 컴퓨터 간에 필요한 데이터를 주고받을 수 있는 걸 컴퓨터 네트워크라고 한다. 이런 네트워크는 규모가 큰 것도 있고 작은 네트워크도 있다. 지구상에는 수많은 ..

카테고리 없음 2023.10.24

[Spring] 인프런 스프링 입문 정리 (6) / Service, 회원 등록, 회원 조회

목차 프로젝트 구조 회원 등록, 조회 1. 프로젝트 구조 지난 글에서는 도메인(domain)과 리포지토리(repository)에 대해서 정리했었다. 이번에는 실제로 비즈니스 로직을 담당하는 Service 코드를 작성해보았다. 프로젝트 구조는 아래와 같다. 패키지가 벌써 4개나 되었다. 이쯤에서 각 패키지의 역할을 다시 한 번 정리하고 가자! controller: 실제 URI 요청을 처리할 Controller 클래스를 모아둔 패키지 domain: (DB가 정해지지 않은 상황을 가정) 회원의 정보로 저장할 변수를 정의한 클래스가 있는 패키지 repository: (DB가 정해지지 않은 상황을 가정) 회원 정보를 메모리에 추가하거나 회원 아이디, 이름으로 정보를 조회하는 패키지 service: 회원 가입이나 ..

카테고리 없음 2023.10.23

[Spring] 인프런 스프링 입문 정리 (5) / 도메인, 리포지토리, 테스트케이스 작성

목차 프로젝트 구조 회원정보 도메인, 리포지토리 설계 테스트 케이스 작성 1. 프로젝트 구조 이번에는 강의 섹션3의 비즈니스 요구사항 정리, 회원 도메인과 리포지토리 만들기, 회원 리포지토리 테스트 케이스 작성 이 3개의 강의를 정리하였다. 글은 도메인(domain) 패키지, 리포지토리(repository) 패키지, 테스트 케이스 순서로 정리하였다. 이번 글의 프로젝트 구조는 위의 사진과 같이 이루어져 있다. 도메인 패키지에서는 회원 정보를 정의하고, 회원 정보에 접근하거나 조회하는 로직은 리포지토리 패키지에 정의되어 있다. 그리고 리포지토리 패키지에서 회원 정보를 등록하고 조회하는 기능이 잘 수행되는지 테스트하기 위한 코드는 'test' 패키지에 작성한다. 2. 회원 정보 도메인, 리포지토리 설계 이 ..

카테고리 없음 2023.10.22

[Spring] 인프런 스프링 입문 정리 (4) / API

목차 API란? Json이란? @ResponseBody 1. API 란? API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 약자이다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다. 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의합니다. (출처: https://aws.amazon.com/ko/what-is/api/ ) API는 컴퓨터나 애플리케이션의 상호 통신 방식을 설명하게끔 정의된 규칙의 모음입니다. API는 애플리케이션과 웹 서버의 사이에서 중간 계층의 역할을 하면서 시스템 간 데이터 전송을 처리합니다..

Spring 2023.10.09

[Spring] 인프런 스프링 입문 정리 (3) / MVC 모델

목차 MVC 모델 MVC 모델 구현하기 1. MVC 모델 MVC 모델은 Model, View, Controller로 이루어진 소프트웨어 디자인 패턴이다. MVC 모델이란? ... MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호 동작을 관리한다. (출처: 위키피디아 '모델-뷰-컨트롤러') MVC 소프트웨어 디자인 패턴의 세 가지 부분은 다음과 같이 설명할 수 있습니다. 1. 모델: 데이터와 비즈니스 로직을 관리합니다. 2. 뷰: 레이아웃과 화면을 처리합니다. 3. 컨트롤러: 모델과 뷰로 명령을 전달합니다. (출처: Mozilla 'MVC') 2. MVC 모델 구현하기 MVC ..

Spring 2023.10.09

[Spring] 인프런 스프링 입문 정리 (2) / 페이지 만들기

목차 welcom page 만들기 hello 페이지 만들기 Spring의 동작 방식 (아주 간략하게) 1. 정적 페이지 만들기 경로: main > resources > static index.html 파일 생성 html 파일을 작성하여 맨 처음 도메인을 호출했을 때 보여줄 정적 페이지를 만든다. 2. hello 페이지 만들기 2.1 Controller 생성 실제로 클라이언트가 요청한 URL에 따라 동작하는 페이지를 만들어보자. 먼저 Controller 역할을 하는 파일을 하나 만든다. 경로: main > java > hello.hellospring hello.hellospring.controller 패키지 생성 HelloController.java 파일 생성 이렇게 구성이 되도록 만들어주면 된다. 그 다..

Spring 2023.10.08

[Spring] 스프링 인프런 입문 정리 (1) / Java 설치, Spring 프로젝트 시작하기

목차 JDK 설치 Zulu JDK 17 설치 환경변수 설정 IntelliJ 설치 Spring 프로젝트 만들기 Spring 프로젝트 실행하기 IntelliJ에서 프로젝트 열기 main 메소드 실행 1. JDK 설치 1.1 Zulu JDK 17 설치 JDK는 Oracle JDK와 Zulu JDK 등이 있다. 전에 공부할 때는 Oracle JDK를 설치했었다. 이번에는 Zulu JDK 17 버전을 설치했다. (강의에서는 Spring 2.X.X 버전이라 JDK 11로 진행되었지만, 현재는 Spring 3.X.X 버전이라 JDK 17로 실행해야 오류가 나지 않는다.) Zulu JDK 17 설치 Azul Downloads According to the Gartner report, “by 2025, more than..

Spring 2023.10.08