반응형

분류 전체보기 198

[네트워크]네트워크의 기본 구조

네트워크의 기본 구조 네트워크(Network)란 여러 장치가 서로 연결되어 데이터를 주고받는 구조를 의미합니다.인터넷, 사내 네트워크, 스마트폰 통신, IoT 환경까지 모두 네트워크 위에서 동작합니다.모든 네트워크는 크게 다음 세 가지 요소로 구성됩니다.노드(Node) : 정보를 주고받는 장치간선(Edge) : 노드들을 연결하는 통신 경로메시지(Message) : 노드 간에 전달되는 데이터이 세 가지 요소만 이해해도 네트워크의 전체적인 구조를 파악할 수 있습니다.노드(Node)노드는 네트워크에 연결되어 데이터를 송수신할 수 있는 모든 장치를 의미합니다.예를 들어 다음과 같은 장치들이 모두 노드에 해당합니다.서버 컴퓨터개인 데스크톱 / 노트북스마트폰, 태블릿스마트 TV, 냉장고, 자동차(IoT 기기)라우터..

CS/네트워크 2026.01.18

[네트워크] 소켓(Socket)이란?

소켓(Socket) 이란?프로그램이 네트워크를 통해 데이터를 송수신하기 위해 사용하는 통신 인터페이스이다. 소켓이 필요한 이유프로그램은 혼자서 네트워크를 통해 데이터를 보낼 수 없다.OS가 제공하는 네트워크 기능을 이용해야하는데이때 프로그램과 OS 사이에 네트워크 통신을 가능하게 해주는 인터페이스가 바로 소켓이다. 소켓이 연결하는 대상같은 컴퓨터 내 프로세스 간 통신(IPC)웹서버 와 DB 네트워크를 통한 다른 컴퓨터와의 통신브라우저와 서버소켓을 식별하는 요소하나의 소켓은 보통 다음 정보로 식별된다.IP 주소 + 포트 번호 + 전송 프로토콜192.168.0.10:8080 (TCP)IP 주소 → 어떤 컴퓨터인지포트 번호 → 어떤 프로그램인지프로토콜(TCP/UDP) → 어떤 방식으로 전달할지 TCP 소켓과..

CS/네트워크 2026.01.02

Mockito 기반 단위 테스트에서 검증 방법 정리

Mockito 기반 단위 테스트에서 검증 방법 정리(단순 값 · 객체/리스트 · 예외 검증)서비스 로직 테스트에서 가장 헷갈리는 부분은“이 상황에서 무엇을 검증해야 하는가?” 입니다.Mockito 기반 단위 테스트에서는반환 값의 형태와 테스트 의도에 따라 검증 방식이 달라집니다.이번 글에서는 실제 사용 중인 테스트 코드를 기준으로 다음 세 가지를 정리합니다.단순 값 비교객체 / 리스트 값 비교예외(에러 코드) 검증테스트 환경@ExtendWith(MockitoExtension.class)publicclassUserHistoryServiceTest {@Mock LoginHistoryMapper loginHistoryMapper;@Mock PlayGameMapper playGameMapper;@In..

Spring Boot에서 JWT 인증 운영하기

Spring Boot에서 JWT 인증 운영하기Logout Timestamp 기반 Access Token 무효화 + Redis 활용 전략JWT 기반 인증을 도입하면 인증 로직은 단순해지지만,로그아웃 처리와 토큰 무효화는 곧바로 운영 이슈로 이어진다.특히 Access Token은 stateless 구조이기 때문에“이미 발급된 토큰을 어떻게 즉시 무효화할 것인가?”는JWT를 실제 서비스에 적용할 때 반드시 고민해야 할 문제다.이 글에서는 Spring Boot 기반 API에서Access / Refresh Token 분리 설계Redis 기반 Refresh Token 관리Logout Timestamp 기반 Access Token 무효화 전략SecurityFilterChain에 JWT 필터를 적용하는 방식1️⃣ 전체..

웹RTC(WebRTC)-1

WebSocket으로 실시간 영상 전송 시 발생하는 문제와 WebRTC를 통한 해결 방법실시간 영상 전송을 구현할 때 많은 개발자가 처음 떠올리는 방식은 WebSocket이다.양방향 통신이 가능하고 다양한 환경에서 쉽게 구현할 수 있기 때문이다.나 또한 IoT 기기에서 찍힌 실시간 영상을 WebSocket을 통해 전송하는 구조를 사용하면서 몇 가지 한계를 경험했다.이 글에서는 WebSocket 기반 영상 전송의 문제점,그리고 이를 해결하기 위해 등장한 WebRTC의 구조·동작 방식·장단점을 정리한다.1. WebSocket으로 영상 스트리밍을 구현할 때의 문제점WebSocket은 메시지 기반의 양방향 실시간 통신에 매우 적합하지만,영상·음성 전송에는 구조적으로 큰 한계가 존재한다.1) 서버를 반드시 경유하..

BigInteger

BigIntegerBigInteger는 int, long 범위를 넘어가는 아주 큰 정수를 다루기 위한 클래스이다.java.math 패키지를 import 해야 사용가능하다.또한 이론상 메모리가 허용하는 한 무한히 큰 정수를 다룰 수 있다.BigInteger 생성하기import java.math.BigInteger;// 문자열로 생성 (가장 일반적)BigInteger big1 = new BigInteger("123456789012345678901234567890");// 일반 정수로 생성BigInteger big2 = BigInteger.valueOf(1000);// 상수 사용BigInteger zero = BigInteger.ZERO; // 0BigInteger one = BigInteger.ONE; ..

Moldi 프로젝트 API 연동 규격서

Moldi 프로젝트 API 연동 규격서1. 문서 개요본 문서는 Moldi 프로젝트의 API 연동 규격을 정의하며, 외부 시스템이 원활히 연동할 수 있도록 작성되었습니다.버전: v1포맷: OpenAPI 3.1.0보안: JWT Bearer 토큰 기반 인증2. 서버 정보Base URL: https://moldi101.duckdns.org인증 방식: Authorization: Bearer 헤더 포함로그인과 회원가입을 제외한 모드 API는 토큰이 필요3. 공통 응답 형식모든 API 응답은 아래 구조를 기본으로 합니다.{ "success": true, "message": "요청 처리 결과 메시지", "source": "/api/... (요청 경로)", "errorCode": null, "data": { ..

프로젝트 2025.08.23

애자일(Agile) 이란?

애자일(Agile) 이란?애자일은 은 변화에 유연하게 대응하면서 빠르게 고객에게 가치를 전달하는 방식입니다.하나의 거대한 결과물을 한 번에 만드는 것이 아니라, 짧은 개발 주기를 반복하며 점진적으로 완성도를 높여갑니다핵심 요약: 애자일은 사람 중심, 협업 기반, 반복과 피드백을 중시하는 개발 철학이며, 개발 방법론이라기보다는 개발 방식의 사고방식 또는 문화입니다.전통적 방법론(워터폴 등) 애자일 가치프로세스와 도구개인과 상호작용 포괄적인 문서화작동하는 소프트웨어 계약 협상고객과의 협업 계획을 따르기변화에 대응 애자일 실천 방법1️⃣ 스크럼(Scrum)가장 널리 사용되는 애자일 실천 방식스프린트(Sprint)→ 일반적으로 2~4주 단위로 기간을 정하고, 해당 기간 동안 개발할 목표 기능을 선정하여 집중 개..

CS/개발상식 2025.08.07

AIoT 기반 금형 자동 점검 시스템 MOLDi (기획안)

AIoT 기반 금형 자동 점검 시스템 MOLDi 1. 프로젝트 개요 프로젝트명: MOLDi (Mold + AI)목표: 제조 공정 중 사용되는 대형 금형의 결함(스크래치, 이물질, 크랙 등)을 AIoT 기술을 통해 자동으로 탐지하고, 관리자에게 효율적으로 전달하여 불량품 생산 방지, 작업자 안전 확보, 공정 효율화를 도모함. 2. 문제 정의✅ 현황 및 문제점사출성형기는 성형물의 이물질 제거, 금형 설치 및 조정 작업 시 끼임 재해가 많이 발생하는 위험 기계 대형 금형은 사람이 직접 접근하여 점검하기 어렵고 위험함. ⇒ 관련 사망 사례가 지속적으로 발생하는 중결함 발생 시, 제품 불량 → 생산 라인 전체 효율 저하 및 사고 위험 증대.점검 결과의 디지털 기록/공유가 어려워 추적성, 관리성 낮음.✅ ..

프로젝트 2025.08.03
반응형