본문 바로가기

Self Study/Others8

데이터 전달할때 자주 쓰는 JSON 그리고 XML 이번 프로젝트에서는 외부 시스템에서 MQTT로 메세지를 받아서 처리하는 로직을 개발하게 되었다.처음에는 메세지 포맷을 XML로 할지, JSON으로 할지 팀 내에서 고민을 꽤 했다.각자 장단점이 있어서 쉽게 결정을 못 했지만, 최종적으로는 JSON을 선택하게 되었다.그 과정에서 정리해본 JSON vs XML 비교 내용을 간단히 공유해본다.(개발하면서 꽤 자주 부딪히는 주제라 정리해두면 나중에 또 쓸 일이 있을 듯.)✅ JSON의 장점1. 가볍고 간결하다JSON은 불필요한 태그 없이 딱 필요한 데이터만 담을 수 있어서메시지 크기를 줄이기에 좋다.→ MQTT처럼 네트워크 효율이 중요한 환경에 유리2. 파싱이 쉽고 빠르다대부분의 언어에서 기본적으로 지원되는 JSON 파서 덕분에별다른 설정 없이 바로 객체로 변환.. 2025. 7. 19.
[암호화]Threefish - Skein 해시 함수의 핵심 블록 암호 우연히 유지보수 하는 업체에서 암호화를 해야한다며 요청이 왔다(공공기관) 당연히 우리는 흔히 사용하는 ARIA 나 AES 를 사용하고 있는 줄 알았는데 솔루션이 버젼업 하면서 새로운 암호화를 채택했다고 하여 정리한다!1. Threefish 개요Threefish는 2008년, NIST SHA-3 해시 함수 공모전을 위해 설계된 해시 함수인 Skein의 핵심 블록 암호입니다. 일반적인 블록 암호와 달리 Threefish는 비트 조작 기반 구조로 되어 있으며, 특히 고속 처리와 단순한 구조, 그리고 암호학적 강인성을 목표로 설계되었습니다.Threefish는 독립적으로도 사용할 수 있지만, 보통은 Skein 해시 함수의 내부에서 블록 암호로 동작합니다.2. 주요 특징 항목설명디자이너Bruce Schneier.. 2025. 7. 16.
스레드 풀 (Thread Pool) 왜 지정해야 할까? 📘 스레드 풀(Thread Pool)을 왜 지정해야 할까?서버에서 여러 사용자의 요청을 동시에 처리하려면 "스레드"라는 일꾼들이 필요해요.이 일꾼들을 하나씩 매번 새로 만드는 건 비효율적이기 때문에, 보통은 **“스레드 풀”**이라는 개념을 써서 미리 여러 스레드를 만들어두고, 필요할 때 꺼내 쓰고 다시 돌려줍니다.하지만 중요한 문제는…❗ “그럼 도대체 스레드를 몇 개 만들어야 하지?”스레드를 너무 적게 잡으면 응답이 느려지고,너무 많이 잡으면 서버가 버벅거리거나 죽을 수도 있어요.그래서 적절한 스레드 수를 지정하는 과정이 꼭 필요합니다.🧩 스레드 수를 지정할 때 알아야 하는 것들1️⃣ CPU 코어 수💡 컴퓨터(서버)의 뇌! 동시에 몇 개의 일을 진짜로 할 수 있는지 알려줘요.CPU 코어가 4개면 .. 2025. 7. 12.
스레드(Thread) ✅ 한 줄 정의**스레드(Thread)**는 CPU가 작업을 처리하는 최소 단위이며,하나의 프로그램(프로세스) 안에서 여러 작업을 동시에 처리할 수 있게 해줍니다.🔍 쉽게 풀어서 설명하면…🎭 예: 배우(프로세스)와 대사(스레드)프로세스: 연극 무대에서 한 명의 배우스레드: 배우가 하는 각 장면의 대사 흐름→ 한 배우가 동시에 여러 대사를 수행할 수 있다면? 바로 멀티스레드!"스레드 방식으로 실행된다" 라는 말은"이 작업은 누군가(스레드)에게 맡겨져서, 다른 작업과 동시에 실행된다" 라는 뜻!🔍 조금 더 쉽게 비유해서 설명해볼게요📦 예시: 택배 회사한 명의 택배 기사 = 1개의 스레드회사(프로그램)는 여러 건의 택배(작업)를 처리해야 해요👉 "스레드 방식으로 실행된다" =작업 하나하나를 택배 기사.. 2025. 7. 10.
WEB 과 WAS Web Server vs WAS( Web Application Server) 구분핵심 역할주로 처리하는 것 Web Server“정적(Static) 콘텐츠 배달자”HTML, CSS, JS, 이미지, 동영상 등 요청‑받아 그대로 전송WAS“동적(Dynamic) 로직 실행자”서블릿·Spring MVC·EJB·JSP 같은 코드 실행 → DB/외부시스템과 대화 → 결과 생성 두 시스템 모두 HTTP 를 사용하지만, 웹 서버는 “파일 전송”에 특화, WAS는 “비즈니스 로직 수행”에 특화돼 있습니다. 1️⃣ 동작 흐름 이해하기브라우저 ──► [1] Web Server (Apache HTTP / Nginx) │ ├─ 정적 파일이면 바로 응답 │ └─ 동적 URL이면.. 2025. 7. 7.
Spring 과 Servlet ✅ 핵심 한 줄 요약Spring은 내부적으로 DispatcherServlet이라는 서블릿을 사용해서 모든 웹 요청을 처리합니다.🔷 구조적으로 어떻게 되는가?Spring MVC의 요청 흐름은 다음과 같아요: 브라우저 요청 ↓ (HTTP 요청)Tomcat (서블릿 컨테이너) ↓DispatcherServlet (Spring이 만든 서블릿) ↓Controller (@Controller or @RestController) ↓Service, Repository 등 비즈니스 로직 처리 ↓DispatcherServlet ↓응답 반환 🧩 DispatcherServlet이 뭐야?🔍 DispatcherServlet = Spring이 만든 서블릿HttpServlet을 상속받은 일반적인 .. 2025. 7. 5.