2026/08 28

[Blazor Web App] 12. Repository에 인터페이스 적용하기 - 생성자 주입과 DI 이해하기

지난 글에서는 테스트 사용자 정보를 LoginService에서 분리해 TestUserRepository로 옮겼다.역할은 다음처럼 나뉘었다.LoginService→ 로그인 입력 검증→ 비밀번호 확인→ 로그인 결과 생성TestUserRepository→ 테스트 사용자 목록 보관→ 아이디로 사용자 검색기능은 잘 동작했지만 LoginService를 다시 보니 특정 Repository 클래스에 직접 의존하고 있었다.private readonly TestUserRepository testUserRepository;생성자도 TestUserRepository를 직접 받았다.public LoginService( TestUserRepository testUserRepository){ this.testUserRe..

language/blazor 2026.08.16

[데이터베이스실습] 07. 집합 연산자와 조인

여러 테이블(또는 여러 조회 결과)을 하나로 합치는 방법은 크게 두 가지다. 집합 연산자는 결과를 위아래로(세로로) 잇고, 조인은 좌우로(가로로) 잇는다. 이 둘의 방향 차이를 먼저 잡아두니 헷갈리지 않았다.특히 조인은 관계형 데이터베이스의 진짜 위력이 드러나는 지점이다. 정규화로 잘게 나눠둔 테이블들을 다시 의미 있게 엮어주는 것이 바로 조인이기 때문이다.1. 집합 연산자두 SELECT 결과를 세로로 잇는다. 두 SELECT의 열 개수와 자료형이 같아야 한다.연산자의미UNION합집합, 중복 제거UNION ALL합집합, 중복도 모두 출력MINUS차집합 (첫 결과에서 두 번째 결과를 뺌)INTERSECT교집합 (양쪽에 다 있는 행만)SELECT empno, ename, deptno FROM EMP WHER..

data/oracle 2026.08.15

[자바프로그래밍] 05. 배열과 예외처리

오늘은 두 주제를 다뤘다. 여러 값을 묶는 배열과, 실행 중 발생하는 오류에 대응하는 예외 처리다.자바의 배열은 C와 달리 "객체"라는 점에서 차이가 있고, 예외 처리는 자바가 안정성을 위해 강조하는 기능이다.1. 배열자바 배열의 특징같은 타입의 데이터가 순차 저장된 자료구조로, 인덱스는 0부터 length-1까지다. 자바 배열은 객체이며, 자기 크기를 length라는 속성으로 알고 있다(C 배열이 자기 길이를 모르는 것과 다름).int[] data = new int[5]; // 선언 + 생성 (크기 5)int[] data = {1, 2, 3}; // 선언 + 초기화System.out.println(data.length); // 배열 크기를 length로 안다C와 다른 두 가지가 눈..

language/java 2026.08.14

[인터넷보안] 03. 네트워크 보안

네트워크는 데이터를 멀리 보내는 통로인 만큼, 그 길 위에서 도청·위조·마비 같은 위협에 노출된다. 흥미로운 점은 대부분의 공격이 정상 프로토콜의 정상 동작을 비틀어 악용한다는 것이다. 오늘은 DoS/DDoS, 스니핑, 스푸핑, 세션 하이재킹, 그리고 무선 네트워크 보안을 정리했다.1. 서비스 거부 공격 (DoS / DDoS) 서비스 거부 공격은 시스템을 마비시켜 정상 서비스를 못 하게 만든다. 크게 둘로 나뉜다. 유형설명대표 공격취약점 공격형오류 패킷으로 오작동 유발티어드롭자원 고갈형대역폭·CPU·세션 소모SYN 플러딩, 스머프, 죽음의 핑 공격원리대응랜드(Land)출발지 IP = 목적지 IP로 전송OS 패치SYN 플러딩3-way handshake의 동시 접속 제한 악용대기 시간 단축스머프(Smurf)..

[컴퓨터네트워크] 06. 전송 계층 (TCP·UDP)

네트워크 계층(IP)은 패킷을 목적지 컴퓨터까지 보내주지만, "도착했는지, 순서가 맞는지"는 보장하지 않는다. 그 신뢰성을 책임지고, 데이터를 어느 프로그램에 전달할지 정하는 것이 전송 계층(4계층)이다. 대표 프로토콜이 TCP와 UDP다.1. 전송 계층의 역할과 포트전송 계층은 두 가지를 한다. 데이터를 신뢰성 있게 전달하고(오류 점검·재전송), 그 데이터를 어느 애플리케이션에 줄지 식별한다(포트 번호). 데이터 단위는 세그먼트다.포트 번호: 어느 프로그램으로 갈지IP 주소가 "어느 컴퓨터"라면, 포트 번호는 그 컴퓨터의 "어느 프로그램"인지를 가리킨다(0~65535). 그래서 한 컴퓨터에서 웹·메일·게임이 동시에 통신해도 섞이지 않는다. 0~1023은 잘 알려진 포트(well-known port)로 ..

[자바프로그래밍] 04. 반복문

반복문은 같은 작업을 여러 번 수행하게 한다. 자바의 for·while·do~while은 C와 거의 같지만, 자바에는 라벨(label)을 이용한 분기라는 독특한 기능이 더 있다.1. 세 가지 반복문// for: 횟수가 정해진 반복int sum = 0;for (int i = 1; i for의 초기식에서 선언한 변수(int i)는 그 반복문 안에서만 유효하다는 점이 C와 다른 깔끔한 부분이다. 반복이 끝나면 변수도 사라지니, 같은 이름을 다른 반복에서 다시 써도 충돌이 없어 편했다.조건으로 끝나는 반복은 입력을 조건식 안에 넣는 패턴을 자주 쓴다.// 0이 입력될 때까지 합산while ((n = scan.nextInt()) != 0) { sum += n; count++;}2. 분기문: break,..

language/java 2026.08.11

네관사 2급 실기 벼락치기

단답형 문제 01 네트워크 구성에서 지리적 제한을 최소화하고, 사용자가 원하는 논리적인 네트워크를 최대한 유연하게 구성할 수 있도록 스위칭 기술을 기반으로 가상 개념을 도입한 기술은 무엇인가?⇒ VLAN02 RAID 구성 방식 중, 미러링 모드라고도 불리며, 모든 데이터를 동시에 다른 디스크에 백업하여 하나의 디스크가 손상되어도 데이터를 보호할 수 있는 RAID 구성은?⇒ RAID 103 거리 벡터 알고리즘을 사용하고, 최대 15개의 홉을 지원하며 30초마다 업데이트되는 라우팅 프로토콜은?⇒ RIP04 인터넷 웜과 같은 악성 코드 및 해킹으로 인한 유해 트래픽을 차단하는 차세대 능동형 보안 네트워크 솔루션은?⇒ 침입 방지 시스템05 공중망을 통해 둘 이상의 네트워크를 안전하게 연결하기 위해 가상의 터널을..

[C언어] 06. 함수 (Function)

프로그램이 커지면 같은 코드가 여기저기 반복되고, 전체를 한눈에 파악하기 어려워진다. 함수는 특정 기능을 하나의 덩어리로 묶어 이름을 붙인 것으로, 이 문제를 푸는 핵심 도구다. 우리가 이미 써 온 printf, scanf도 모두 함수였다.1. 함수란?함수(function)특정 작업을 수행하는 명령어들의 묶음으로, 고유한 이름을 가지며 입력(인수)을 받아 결과(반환값)를 돌려줄 수 있다.함수를 쓰면 좋은 점은 분명했다.중복 제거: 같은 코드를 반복하지 않고 한 번 정의해 여러 번 호출한다.재사용: 한 번 잘 만든 함수는 다른 프로그램에서도 쓸 수 있다.모듈화: 프로그램을 기능 단위로 나눠, 개발과 유지보수가 쉬워진다.함수는 크게 우리가 직접 만드는 사용자 정의 함수와, 표준 라이브러리가 제공하는 라이브러..

language/c 2026.08.10

[인터넷활용] 03. JavaScript 기초

HTML이 구조를, CSS가 표현을 맡는다면, 자바스크립트는 웹페이지에 동작과 논리를 불어넣는다. 버튼을 누르면 반응하고, 입력값을 계산하고, 화면을 바꾸는 일이 모두 자바스크립트의 영역이다. 오늘은 변수·자료형·연산자·제어문·함수 같은 언어의 기본기를 정리했다.1. 변수와 자료형변수를 선언하는 키워드는 세 가지이며, 각각 성격이 다르다.키워드특징var함수 스코프 (예전 방식, 지금은 권장하지 않음)let블록 스코프, 재할당 가능const블록 스코프, 재할당 불가 (상수) let name = "정주호";const PI = 3.14; 자료형은 숫자(Number), 문자열(String), 논리(Boolean), 객체(Object), 그리고 값이 없음을 나타내는 undefined와 null이 있다. 기본은 c..

language/html 2026.08.09

[Blazor Web App] 11. 로그인 데이터 분리하기 - UserAccount와 TestUserRepository 만들기

지난 작업에서는 로그인에 성공했을 때 사용자 정보를 UserInfo에 담아 LoginResult로 반환하도록 구조를 정리했다.로그인 상태를 보관하는 LoginStateService는 사용자 정보를 직접 만들지 않고, LoginService가 만들어준 결과를 저장만 하도록 바꿨다.구조가 조금씩 정리되고 있었지만, LoginService를 다시 보니 아직 테스트 사용자 정보가 직접 들어 있었다.private readonly string testUserId = "sample-admin";private readonly string testPassword = "1111";로그인에 성공했을 때 표시할 사용자 이름과 등급도 LoginService 안에서 직접 만들고 있었다.userInfo.UserId = loginR..

language/blazor 2026.08.08