전체 글 93

[컴퓨터네트워크] 05. 네트워크 계층 (IP)

같은 네트워크 안에서는 MAC 주소만으로 통신할 수 있다. 하지만 다른 네트워크로 데이터를 보내려면 IP 주소와 그 길을 찾는 라우팅이 필요하다. 이 일을 담당하는 것이 네트워크 계층(3계층)이고, 그 핵심 프로토콜이 IP다.1. TCP/IP와 주소 체계인터넷의 표준 통신 규약이 TCP/IP다. 둘은 역할을 나눠 맡는다.IP (Internet Protocol): 패킷을 목적지 호스트까지 전달(전송 담당).TCP (Transmission Control Protocol): 오류 시 재전송, 흐름 제어 등 신뢰성 담당.통신에는 세 종류의 주소가 함께 쓰인다.주소길이식별 대상MAC 주소48비트네트워크 카드(기기)IP 주소32비트(IPv4)호스트(컴퓨터)포트 주소16비트프로세스(서비스)"어느 기기(MAC)의, 어..

[Ubuntu] 08. 홈 서버 운영 - Unit Test와 Integration Test 분리

서버 배포와 백업까지 정리한 뒤에는 테스트가 신경 쓰이기 시작했다.처음에는 로컬에서 dotnet test가 통과하면 괜찮다고 생각했다. 그런데 Codex나 GitHub Actions 같은 환경에서 테스트를 돌리려고 하니 문제가 생겼다.오류는 대략 이런 식이었다.Cannot create an automatic instance.Unknown error처음에는 코드가 깨졌나 싶었는데, 자세히 보니 테스트 코드 자체의 실패가 아니라 LocalDB 자동 인스턴스를 만들지 못해서 생긴 문제였다.문제 상황현재 운영 DB는 Ubuntu 서버의 Docker MSSQL에 있다.Ubuntu Server ↓Docker ↓mssql-db ↓SurvivalGame DB하지만 테스트가 운영 DB에 직접 붙으면 안 ..

study/server 2026.08.04

[C언어] 05. 반복문

같은 작업을 여러 번 해야 할 때, 코드를 여러 번 복사하는 대신 반복문을 쓴다. "1부터 100까지 더하기"를 덧셈 100줄로 쓰지 않고 몇 줄로 끝내는 것이다. C의 반복문에는 while, do~while, for 세 가지가 있다. 종류특징while조건이 참인 동안 반복 (반복 횟수를 모를 때)do ~ while일단 한 번 실행한 뒤 조건 검사 (최소 1회 보장)for정해진 횟수만큼 반복1. while 문조건이 참인 동안 중괄호 안을 반복한다. 조건을 먼저 검사하므로, 처음부터 거짓이면 한 번도 실행되지 않는다(0번 이상).while (조건) { 수행 문장;} 반복 횟수를 미리 알 수 없을 때(예: "0이 입력될 때까지") 적합하다.int n;while (1) { /..

language/c 2026.08.03

[인터넷활용] 02. CSS 스타일링

HTML이 문서의 뼈대라면, CSS는 그 위에 입히는 옷이다. 색·크기·여백·배치 같은 시각적 표현을 모두 CSS가 담당한다. 오늘은 CSS를 적용하는 방법, 어떤 요소를 꾸밀지 고르는 선택자, 그리고 자주 쓰는 속성을 정리했다.1. CSS를 적용하는 세 가지 방법CSS는 HTML에 세 가지 방식으로 연결할 수 있다. 방법작성 위치예인라인태그 안 style 속성내부의 외부별도 .css 파일 연결 기본 문법은 "어떤 요소를(선택자) 어떻게(속성: 값)" 꾸밀지 적는 구조다. 선택자 { 속성: 값; 속성: 값; }body { font-family: Arial; background-color: #f4f4f4; padding: 20px; } 실무에선 외부 CSS를 쓴다인라인은 간편하지만 태그마다 스타일이 흩어져..

language/html 2026.08.02

MaxUCB - Maximum Upper Confidence Bound

AI 모델을 학습시킬 때, 손실(loss)이 큰 데이터를 우선적으로 학습시키는 것은 상식적인 접근이다. 오답 노트처럼 틀린 문제를 다시 풀어보는 원리다. 하지만 오차가 가장 큰 데이터만 탐욕적으로(greedy) 고르면 부작용이 생긴다.첫째, 예전에 학습해둔 쉬운 영역의 데이터를 까먹는 망각 현상이 발생한다.둘째, 데이터 자체에 오류가 있거나 노이즈가 심한 경우, 오차가 영원히 줄어들지 않아 모델이 그 데이터에만 갇혀버린다.이 문제를 해결하려면 '현재 오차가 큰 영역(활용)'과 '최근에 확인하지 않은 영역(탐색)' 사이의 균형이 필요하다. 이를 수학적으로 제어하는 방법이 UCB(Upper Confidence Bound) 알고리즘이다.Max UCB의 개념전체 데이터를 여러 구역으로 나눈 뒤, 각 구역마다 U..

study/memo 2026.08.01

[알고리즘] 04. 선택구조

순차구조만으로는 "조건에 따라 다르게" 행동할 수 없다. 합격/불합격을 가르거나, 짝수/홀수를 판별하려면 갈림길이 필요하다. 이 갈림길이 선택구조다. 수업에서 Raptor로 푼 예제들을 단순 분기 → 중첩 분기 → 다중 분기 순으로 정리했다.1. 선택구조란?선택구조의 세 요소참·거짓을 가르는 조건식조건이 참(Yes)일 때 실행할 명령 블록조건이 거짓(No)일 때 실행할 명령 블록 Raptor에서는 마름모에 조건식을 쓰고, 참이면 왼쪽(Yes), 거짓이면 오른쪽(No) 경로로 분기한다. 짝수/홀수 판별을 순서도로 그리면 이렇다. 조건식에 쓰는 연산자는 두 종류다.종류연산자예관계= !=(/=) > >=3 → Yes논리and or xor not(3 → Yes 여러 조건을 조합할 땐 관계 연산자가 먼저 ..

[Blazor Web App] 09. CSS 구조 정리하기 - app.css와 .razor.css 역할 나누기

앞에서 로그인 화면과 회원 페이지를 만들면서 CSS도 같이 작성했다.처음에는 페이지가 하나뿐이라 Home.razor.css에 필요한 스타일을 전부 넣어도 괜찮았다.그런데 Member.razor가 생기고, 버튼이나 페이지 박스 스타일이 비슷하게 반복되기 시작했다.예를 들어 Home.razor.css에는 로그인 버튼 스타일이 있었다..login-button { padding: 10px 16px; border: 1px solid #333; border-radius: 4px; cursor: pointer;}Member.razor.css에도 비슷한 버튼 스타일이 필요했다..login-button { margin-top: 16px; padding: 10px 16px; borde..

language/blazor 2026.07.31

[데이터베이스실습] 05. 오라클 함수 - 숫자·날짜·변환

문자 함수에 이어, 이번에는 숫자·날짜를 다루는 함수와 자료형을 서로 바꾸는 변환 함수, 그리고 NULL과 조건을 처리하는 함수를 정리했다. 실무 쿼리에서 "보기 좋은 형태로 가공하는" 일의 대부분이 여기서 이뤄진다고 한다.1. 숫자 함수함수설명ROUND(숫자, 위치)특정 위치에서 반올림 (생략 시 소수 첫째 자리)TRUNC(숫자, 위치)특정 위치에서 버림 (생략 시 소수 첫째 자리)CEIL(숫자)올림 (그보다 크거나 같은 가장 작은 정수)FLOOR(숫자)내림 (그보다 작거나 같은 가장 큰 정수)MOD(숫자, 나눌수)나눈 나머지SELECT ROUND(1234.5678, 2), -- 1234.57 TRUNC(1234.5678, 2), -- 1234.56 ROUND(1234.567,..

data/oracle 2026.07.30

[컴퓨터네트워크] 04. OSI 참조 모델

네트워크 통신은 매우 복잡하다. 그래서 그 기능을 7개의 층으로 나눠 각각 책임을 맡긴 것이 OSI 7계층 모델이다. 복잡한 통신을 "역할 단위로 쪼개" 이해하고 설계하기 위한 국제 표준이며, 네트워크 공부의 뼈대다.1. OSI 7계층OSI(Open System Interconnection) 모델통신 기능을 7개 계층으로 나눠 각 계층마다 역할과 프로토콜을 규정한 국제 표준이다. 특정 프로토콜이 아니라, 네트워크를 설계하고 이해하기 위한 틀(모델)이다. 계층이름역할데이터 단위7응용(Application)사용자 인터페이스, 네트워크 서비스데이터6표현(Presentation)암호화·압축·코드 변환데이터5세션(Session)연결 설정·유지·종료데이터4전송(Transport)종단 간 신뢰성, 오류·흐름 제어세그..

[Blazor Web App] 08. Razor 컴포넌트 이해하기 - OnInitialized, override, protected, @code 실행 순서

지난 작업에서는 LoginStateService를 만들어서 로그인 상태를 관리했다.로그인 성공 시에는 상태를 저장하고, /member 페이지에서는 로그인 상태를 확인했다.Home.razor→ LoginStateService.Login(userId)Member.razor→ LoginStateService.IsLoggedIn 확인이 과정에서 Member.razor에 이런 코드를 작성했다.protected override void OnInitialized(){ if (LoginStateService.IsLoggedIn == false) { NavigationManager.NavigateTo("/"); return; }}처음에는 그냥 “페이지가 열릴 때 실행되는 함수인가..

language/blazor 2026.07.28