전체 글 46

Linux 방화벽(firewalld)부터 TCP 3-Way Handshake까지

# 처음 들었던 의문구성은 대략 이랬다.2번 서버에 WAS(JEUS)가 기동되어 있고해당 WAS 위에 웹 애플리케이션이 올라가 있다이 웹 애플리케이션은내부적으로 같은 서버에 설치된 특정 솔루션의 화면에 접근하기 위한 웹 페이지다이 솔루션은 별도의 TCP 포트(10255)를 사용해 통신한다여기서 자연스럽게 이런 의문이 들었다. 1번 서버에서 2번 서버의 JEUS 포트만 허용된 상태라면, 그 JEUS 위에 올라간 웹 페이지를 통해 2번 서버 내부 솔루션(10255 포트)에 정상적으로 접근할 수 있을까? 2번 서버에는 WAS와 해당 솔루션이 함께 구성되어 있었기 때문에, 서버 내부 통신이라는 점에서 문제없이 동작할 것이라고 생각했다. 다만 실제 운영 환경에서는 내부 방화벽 정책이나 네트워크 구성 등 다른 요소..

Server 2026.02.04

암호화 알고리즘

요즘 암복호화로 고통을 좀 받고 있어서 자세히 찾아보고 정리하려고 한다. 1. 알고리즘이란?알고리즘은 데이터를 섞는 규칙(방법)이다. 코드 작성한 부분 중 이 부분이 알고리즘 부분이다.static final String ALGORITHM = "AES";static final int KEY_LENGTH = 256;비유: 금고를 만들 때 다이얼 방식으로 만들지, 지문인식으로 만들지 결정하는 설계도와 같다. 요즘 가장 표준적인 방식이 AES이다.AES-128: 키 길이가 16바이트AES-256: 키 길이가 32바이트2. IV(초기화 벡터) 가 왜 필요한가?만약 IV가 없다면? 동일한 키로 "Hello"라는 단어를 암호화할 때, 결과값이 항상 똑같이 ABCDE 라고 나온다면 ABCDE가 나오면 저건 "Hello..

Java 2026.01.31

NAS 와 SAN 차이점

1. NAS / SAN 전부 마운트 스토리지인데, 차이가 무엇인지? NAS는 IP 기준 연결이면 SAN은 어떤 식으로 연결되는지? 스위치는 하나의 스토리지가 여러 대의 스토리지에 연결하기 위해 필요한지? 1. NAS (Network Attached Storage)NAS는 쉽게 말해 **"네트워크(LAN)에 연결된 공유 폴더"**라고 생각하시면 됩니다.연결 방식 (왜 IP 기준인가?): NAS는 기존의 이더넷(Ethernet) 네트워크 망을 그대로 사용합니다. 우리가 사무실에서 인터넷을 쓸 때 IP 주소를 할당받는 것과 똑같습니다. NAS 장비 자체가 하나의 독립된 서버처럼 IP를 갖고 있으며, 서버나 PC는 NFS나 SMB(CIFS) 같은 프로토콜을 이용해 "이 IP 주소에 있는 특정 폴더를 내 것처럼 ..

Network 2026.01.29

[NAVER CLONE #1] 네이버 클론코딩 Vue 화면 띄우기

1. Vue 에 DB 정보 띄우기 vite.config.tsimport { defineConfig } from 'vite'import vue from '@vitejs/vue'// https://vitejs.dev/config/export default defineConfig({ plugins: [vue()], server: { proxy: { // 프론트에서 /api로 시작하는 요청을 보내면 백엔드로 전달함 '/api': { target: 'http://localhost:9090/naver', // 내 백엔드 주소 (Context Path 포함) changeOrigin: true, secure: false, } } }}) ..

Project 2026.01.28

[NAVER CLONE #1] 네이버 클론코딩 환경 설정

1. Frontend: Vue.js + TypeScript프레임워크: Vue 3 언어: TypeScript 상태 관리: Pinia 스타일링: SCSS 또는 Tailwind CSS빌드 도구: Vite2. Backend: Java + Spring Boot전통적으로 네이버는 Java 기반의 시스템이 매우 견고합니다.프레임워크: Spring Boot 3.5.10언어: Java 25API 설계: REST API인증: Spring Security + JWT 빌드 관리: Gradle3. Database: RDBMS + NoSQL (선택)메인 DB: OracleORM: Mybatis 검색(심화): Elasticsearch 원하는 건 Vue + TypeScript + 백엔드 Java + Mybatis 였고, 이에 맞..

Project 2026.01.26

SQL Error [1950] [42000]: ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다.

에러 메시지:더보기SQL Error [1950] [42000]: ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다. 에러 사유: 1. 유저를 생성할 때, default table space 를 주지 않았음2. DEFAULT TABLESPACE를 안 주면 DEFAULT TABLESPACE = USERS 로 잡아버림3. 테이블스페이스에 데이터를 쓸 수 있는 권한이 없었음. 해결 방법:ALTER USER NAVERCLONE QUOTA UNLIMITED ON USERS;-> NAVERCLONE 사용자가 USERS 테이블스페이스에 데이터를 저장할 수 있는 용량 권한을 무제한으로 준다. 최근 운영 환경에서도 나타났던 에러 메시지여서 익숙하였다지금까지 한번도 본 적 없는데 최근에 꽤 자주 ..

Database 2026.01.26

TCP/IP 프로토콜

최근 프로젝트에서 내 영역 관련 인프라 구성을 해야 했기 때문에 인프라만 주구장창 찾아보게 되었다.가장 기본적인 방화벽 구성에서부터 너무 막혔다.TCP/IP는 왜 소켓이 필요한가?TCP/IP 통신을 하면 반드시 Socket을 열어야 한다.IP= 아파트 주소포트= 집 호수소켓=현관문 (TCP 통신이 드나드는 입구)즉, TCP/IP = 소켓 통신이다.TCP/IP 4계층1. Network Access Layer- MAC 주소, 물리적 전송- 이더넷, WI-FI2. Internet Layer- IP 프로토콜: 패킷 라우팅- IP주소로 호스트 식별- 라우터가 이 계층에서 동작3. Transport Layer(전송 계층)TCP: 연결 지향, 신뢰성, 순서 보장UDP: 비연결, 빠름, 순서보장 안 함- 포트 번호로 ..

Server 2025.12.11

[바이브 코딩] 비개발자 AI 바이브코딩 강의 #00

바이브 코딩이란?: 바이브 코딩은 대규모 언어 모델(LLM)을 활용해 자연어로 원하는 기능을 설명하면 AI가 코드를 생성해 주는 새로운 프로그래밍 방식으로, 코딩의 진입 장벽을 크게 낮추고 누구나 쉽게 소프트웨어를 개발할 수 있도록 돕는 혁신적 접근법입니다. 주제: 자기소개 페이지 생성형 AI 이용https://lovable.dev/via=bebee 로그인하여 이용 (하루에 5번정도 가능한 듯) LovableBuild software products, using only a chat interfacelovable.dev 2. 자기소개 페이지 생성 요청간단한 자기소개 웹사이트를 만들어줘.이름:직업:나이:취미: 해당 메시지를 Lovable에 요청 3. 수정해야 할 사항이 있다면 계속 요청 4. 생..

Project 2025.09.08

[프로그래머스] 서버 증설 횟수

문제 설명당신은 온라인 게임을 운영하고 있습니다. 같은 시간대에 게임을 이용하는 사람이 m명 늘어날 때마다 서버 1대가 추가로 필요합니다. 어느 시간대의 이용자가 m명 미만이라면, 서버 증설이 필요하지 않습니다. 어느 시간대의 이용자가 n x m명 이상 (n + 1) x m명 미만이라면 최소 n대의 증설된 서버가 운영 중이어야 합니다. 한 번 증설한 서버는 k시간 동안 운영하고 그 이후에는 반납합니다. 예를 들어, k = 5 일 때 10시에 증설한 서버는 10 ~ 15시에만 운영됩니다.하루 동안 모든 게임 이용자가 게임을 하기 위해 서버를 최소 몇 번 증설해야 하는지 알고 싶습니다. 같은 시간대에 서버를 x대 증설했다면 해당 시간대의 증설 횟수는 x회입니다.import java.util.ArrayList..

프로그래머스 2025.07.25

[프로그래머스] 유연근무제

문제 설명프로그래머스 사이트를 운영하는 그렙에서는 재택근무와 함께 출근 희망 시각을 자유롭게 정하는 유연근무제를 시행하고 있습니다. 제도 정착을 위해 오늘부터 일주일 동안 각자 설정한 출근 희망 시각에 늦지 않고 출근한 직원들에게 상품을 주는 이벤트를 진행하려고 합니다.직원들은 일주일동안 자신이 설정한 출근 희망 시각 + 10분까지 어플로 출근해야 합니다. 예를 들어 출근 희망 시각이 9시 58분인 직원은 10시 8분까지 출근해야 합니다. 단, 토요일, 일요일의 출근 시각은 이벤트에 영향을 끼치지 않습니다. 직원들은 매일 한 번씩만 어플로 출근하고, 모든 시각은 시에 100을 곱하고 분을 더한 정수로 표현됩니다. 예를 들어 10시 13분은 1013이 되고 9시 58분은 958이 됩니다.당신은 직원들이 설..

프로그래머스 2025.07.21