전체 글 93

[Ubuntu] 06. 홈 서버 운영 - MSSQL 자동 백업과 복구 테스트

자동 배포까지 끝나고 나니 다음으로 신경 쓰인 것은 DB였다.앱은 GitHub에 코드가 있고 Docker 이미지로 다시 만들 수 있다. 하지만 DB 데이터는 한 번 날아가면 코드처럼 다시 clone할 수 없다.이전에는 테스트 배포 단계라 DB를 지우고 다시 만들어도 괜찮았다. 하지만 실제 데이터가 쌓이기 시작하면 그런 식으로 작업하면 안 된다. 그래서 이번에는 MSSQL 백업과 복구 과정을 먼저 정리했다.오늘 목표오늘 목표는 네 가지였다.MSSQL 수동 백업 성공 ↓백업 파일을 호스트 서버에 저장 ↓자동 백업 스크립트 작성 ↓백업 파일로 실제 복구 테스트백업 파일이 생기는 것만 확인하고 끝내고 싶지는 않았다. 실제로 복구까지 해봐야 안심할 수 있다고 생각했다.현재 MSSQL 구조MSSQL..

study/server 2026.07.20

[운영체제] 02. 프로세스 개념과 상태 전이

오늘은 운영체제에서 자주 듣는 단어인 프로세스를 정리했다. 처음엔 "프로그램이랑 프로세스가 뭐가 다르지? 그냥 실행 중인 프로그램 아닌가?" 정도로만 알고 있었는데, 운영체제가 한정된 CPU(Central Processing Unit, 중앙처리장치)를 누구한테 줄지 결정하는 그 "누구"가 바로 프로세스다. 이 개념을 대충 알고 넘어가면 뒤에 나오는 스케줄링이나 동기화가 전부 흐릿해진다.이번 글에서는 내가 짠 코드 한 덩어리가 어떻게 실행 가능한 형태로 메모리에 올라가는지, 일단 올라간 뒤에는 어떤 상태들을 오가며 CPU를 받았다 뺏겼다 하는지를 따라가며 정리했다.1. 시스템 소프트웨어 (번역·연결·적재)내가 작성한 소스 코드는 그 자체로는 CPU한테 한 글자도 의미가 없다. 이 부분이 처음엔 잘 와닿지 ..

computer_science/os 2026.07.19

[알고리즘] 02. 순서도와 Raptor 기초

알고리즘을 코드로 짜기 전에, 처리 흐름을 그림으로 그려보면 논리가 한결 명확해진다. 그 그림이 순서도(Flowchart)다. 오늘은 순서도 기호와, 순서도를 직접 실행해볼 수 있는 도구 Raptor의 동작 규칙을 정리했다.1. 순서도란?순서도(Flowchart)일의 처리 과정을 순서대로 기호와 도형으로 도식화한 것이다. Raptor는 이 순서도를 그려서 바로 실행해볼 수 있는 교육용 프로그래밍 도구다. 기호의미타원시작(Start) / 종료(End)평행사변형입력(INPUT) / 출력(OUTPUT)직사각형처리·대입(assignment)마름모판단(조건/선택) 이 기호들의 조합으로, 알고리즘의 세 기본 구조인 순차·선택·반복을 모두 표현할 수 있다.순차구조: 명령을 주어진 순서대로 실행선택구조: 조건에 따라 ..

[Blazor Web App] 06. 로그인 흐름 확장하기 - 페이지 이동, 회원 페이지, 기본 템플릿 정리

지난 글에서는 로그인 폼의 구조를 정리했다.처음에는 Home.razor 안에서 아이디와 비밀번호를 직접 검사했는데, 이후 LoginRequest, LoginResult, LoginService를 만들면서 입력 데이터와 처리 결과, 로그인 검증 로직을 분리했다.현재 로그인 흐름은 대략 이런 구조가 됐다. Home.razor→ LoginRequest에 입력값 저장→ LoginService.Login(loginRequest) 호출→ LoginResult 반환→ 성공 또는 실패 결과 표시이번에는 여기서 한 단계 더 나아가서, 로그인 성공 후 다른 페이지로 이동하는 흐름을 만들었다.또 로그인 후 이동한 Member.razor 페이지에서 @if, bool, @onclick을 다시 연습했고, 마지막으로 Blazor ..

language/blazor 2026.07.17

[자료구조] 02. 선형 리스트 (배열)

선형 리스트는 원소들이 순서를 가지고 1:1 관계로 나열된 자료구조다. 배열로 구현한 선형 리스트는 메모리에 원소가 연속으로 저장되므로 인덱스 접근이 빠르다.1. 배열 리스트의 특징항목내용저장 방식연속된 메모리 공간에 저장접근iArray[iIndex]로 O(1) 접근삽입삽입 위치 뒤쪽 원소들을 한 칸씩 뒤로 이동삭제삭제 위치 뒤쪽 원소들을 한 칸씩 앞으로 이동단점크기를 미리 정해야 하고 중간 삽입/삭제가 느림 배열 리스트의 핵심은 논리적 순서와 물리적 저장 순서가 같다는 점이다. 그래서 0번, 1번, 2번처럼 바로 접근할 수 있지만, 중간에 값을 넣거나 빼면 뒤쪽 원소들이 움직여야 한다.2. 삽입 연산예를 들어 {10, 20, 30, 40}의 1번 위치에 15를 넣으려면, 기존 20, 30, 40을 오른..

[데이터베이스실습] 03. SELECT - WHERE 조건

SELECT가 데이터를 꺼내는 명령이라면, WHERE는 그중 원하는 행만 걸러내는 조건이다. 실무 쿼리의 난이도는 사실상 이 WHERE 절을 얼마나 정확히 쓰느냐에 달려 있다고 한다.이번엔 비교·논리 연산자부터 IN·BETWEEN·LIKE, 그리고 내가 가장 많이 헤맨 NULL 처리까지, 조건을 거는 도구들을 예제와 함께 익혔다.1. WHERE 절SELECT [열] FROM [테이블] WHERE [조건식];조건식이 참(TRUE)인 행만 결과에 포함된다.SELECT * FROM EMP WHERE DEPTNO = 30; -- 30번 부서 사원만SELECT * FROM EMP WHERE SAL >= 3000; -- 급여 3000 이상문자열은 작은따옴표, 대소문자 구분문자 데이터는 반드시 작은따옴표로 감..

data/oracle 2026.07.16

Semantic Versioning, SemVer - 소프트웨어 버전 표기 방식

소프트웨어에서 1.2.3과 같이 세 개의 숫자로 버전을 표시하는 방식을 유의적 버전 명세(Semantic Versioning)라고 한다. 일반적으로 줄여서 SemVer라고 부른다. SemVer는 소프트웨어와 라이브러리에서 널리 사용되는 버전 관리 규칙이다. 각 숫자는 왼쪽부터 Major, Minor, Patch를 의미한다.[ Major ] . [ Minor ] . [ Patch ] 1 2 3 처음에는 단순히 업데이트 횟수에 따라 숫자를 올리는 방식이라고 생각했다. 하지만 SemVer의 핵심은 변경된 코드의 양이 아니라, 이전 버전과의 호환성이 유지되는가에 있다.각 자리의 의미와 업데이트 기준첫 번째 자리: Major 버전Major 버전은 기존 버전과의 하위 호환..

study/memo 2026.07.16

[Blazor Web App] 05. Blazor에서는 Controller를 왜 잘 사용하지 않을까

Blazor로 로그인 화면을 만들면서 LoginRequest, LoginResult, LoginService를 차례대로 만들었다.처음에는 자연스럽게 이런 의문이 들었다.C# 웹 개발에서는 MVC와 Controller를 자주 이야기하는데,왜 지금 Blazor 프로젝트에서는 Controller를 거의 안 쓰고 있을까?C# 웹 개발을 공부하다 보면 MVC, Controller, Model, View 같은 개념을 자주 보게 된다.ASP.NET Core MVC에서는 Controller가 사용자의 요청을 받고, 필요한 데이터를 준비한 뒤, View를 반환하는 중요한 역할을 한다.그런데 Blazor를 공부하다 보면 구조가 조금 다르다.Blazor 프로젝트에도 Controller를 추가할 수는 있다.하지만 일반적인 화..

language/blazor 2026.07.15

[컴퓨터네트워크] 02. 네트워크의 구성

네트워크는 여러 장치가 매체로 연결되어 이뤄진다. 오늘은 네트워크를 이루는 장치들(스위치·라우터 등), 규모에 따른 구분(LAN·WAN), 연결 형태(토폴로지), 그리고 데이터가 실제로 오가는 전송 매체를 정리했다.1. 네트워크 구성 요소와 규모네트워크는 크게 PC와 애플리케이션(브라우저 등), 접속 장치(스위치·라우터), 전송 매체(유선·무선)로 이뤄진다.여기서 두 핵심 장치를 구분하는 게 중요했다.스위치: 한 네트워크 내부에서 데이터를 전달한다(네트워크의 입구).라우터: 서로 다른 네트워크를 구분하고 연결한다."네트워크"의 기술적 경계는 라우터다기술적 의미에서 하나의 네트워크는 "라우터로 구분되는 범위"를 뜻한다. 집의 인터넷 공유기가 바로 가정용 라우터이고, 그 안의 기기들이 한 네트워크를 이룬다...

[자바프로그래밍] 02. 변수·자료형·연산자

프로그램의 기본 재료인 변수와 자료형, 그리고 그것들을 다루는 연산자를 자바 기준으로 정리했다. C와 비슷한 부분이 많지만, 자바만의 규칙(기본형 8가지, boolean 엄격함, Scanner 입력 등)이 분명히 있어 그 차이에 집중했다.1. 기본 구조와 식별자자바의 모든 코드는 클래스 안에 들어가고, 실행은 main() 메서드에서 시작한다.public class Hello { public static void main(String[] args) { int i = 20; System.out.println("Hello"); System.out.println(i); // 20 }} 이름(식별자)을 짓는 규칙은 C와 비슷하다. 문자·숫자·_·$를 쓰되 숫자로..

language/java 2026.07.13