Stay Hungry Stay Foolish
728x90

전체 글 498

[Network] 네트워크 프로토콜, OSI 7 Layer

네트워크 프로토콜 개념네트워크란?컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고받기 위해 유선 혹은 무선으로 연결된 통신 체제네트워크의 핵심 기능애플리케이션 목적에 맞는 통신 방법 제공신뢰할 수 있는 데이터 전송 방법 제공네트워크 간의 최적의 통신 경로 결정목적지로 데이터 전송노드 사이의 데이터 전송프로토콜이란?네트워크 통신을 하기 위해 통신에 참여하는 주체들이 따라야 하는 형식, 절차, 규약 왜 계층 구조인가?네트워크 기능들을 단 하나의 프로토콜로 구현할 수 없어서 모듈화모듈화를 통해 구조를 나누니 각 기능이 계층별로 동작각 계층의 프로토콜은 하위 계층의 프로토콜이 제공하는 기능을 사용하여 동작대표적인 모델OSI 7 Layer - 범용적인 네트워크 구조TCP/IP Stack (4 Layer) ..

[OS] 리눅스 구조 - 커널(Kernel), 쉘(Shell), 터미널(Terminal)

📑 목차1. 커널 (Kernel)2. 쉘 (Shell)3. 터미널 (Terminal)관계도 1. 커널 (Kernel) 운영체제의 핵심 - 하드웨어를 직접 제어하는 부분CPU, 메모리, 디스크 관리프로그램 실행 담당우리 눈에 보이지 않음(백그라운드에서 동작)사용자가 직접 통제 불가능(보안과 안정성 때문에 보호되어 있음) 2. 쉘 (Shell) 커널과 사용자 사이의 중개자 - 명령어 해석기사용자가 입력한 명령어를 커널이 이해할 수 있게 번역운영체제(커널)를 감싸는 껍데기(shell)운영체제의 서비스를 사용자나 응용프로그램에게 노출운영체제의 서비스 = 커널이 제공하는 기능들쉘이 커널의 복잡한 기능들을 쉬운 명령어로 만들어서 우리가 쓸 수 있게 해주는 것 = 노출종류: bash, zsh, sh 등쉘이 하는 일..

[KDT] 프로그래머스 데브코스 백엔드 과정 합격 후기

1. 지원 동기 및 배경 💡컴퓨터공학을 전공하며 여러 전공 지식을 접해왔지만, 시간이 지나며 휘발되는 지식들에 대한 갈증이 있었다. 개인 프로젝트를 몇 번 진행해 보기도 했으나, 냉정히 말해 기능을 돌아가게 만드는 데 급급했을 뿐이다. "왜 이 기술을 써야 하는지", "이 방식이 최선인지"에 대한 깊이 있는 고민이 부족했다. 스스로 '제대로 된 프로젝트'를 해봤다고 말하기엔 민망한 수준이었고, 기초부터 다시 쌓아 올릴 계기가 절실했다. 실제로 회사 면접을 보면서 나의 부족함을 뼈저리게 느꼈다. 기초적인 질문에도 제대로 답하지 못하는 내 모습을 보며, 이대로는 안 되겠다는 위기감이 들었다. 처음부터 다시, 제대로 된 학습이 필요하다고 생각하던 찰나에 마침 데브코스 모집 공고를 보게 되었고 망설임 없이 지..

Docker

📋 목차도커란?핵심 개념VM과 Docker 차이배포한다고 가정할 때기본 명령어참고 링크📌 도커란?컨테이너 기반 가상화 도구 (2013년 등장)리눅스의 프로세스 격리 기술을 활용해 앱 실행 환경을 컨테이너로 관리OS 전체를 띄우는 VM(가상머신)과 달리 가볍고 빠름어떤 환경(로컬, AWS, Azure 등)에서도 동일하게 실행 가능 → 환경 의존성 문제 해결📦 핵심 개념컨테이너 (Container)선박 컨테이너처럼 규격화된 실행 단위앱 + 실행에 필요한 환경(의존성, 설정)을 하나로 묶어 격리된 공간에서 실행컨테이너는 이미지로부터 생성됨이미지 (Image)컨테이너를 실행하기 위한 설계도/템플릿Dockerfile로 이미지를 빌드할 수 있음Docker Hub에서 공식 이미지 다운로드 가능URL 방식으로 관..

[CSS] Flexbox 속성 한눈에 정리하기

📌 Flex 기본 개념Flexbox는 컨테이너(부모)와 아이템(자식)으로 구성된다..container { display: flex; /* 이걸 선언해야 flex 속성들이 작동함 */} 컨테이너에 display: flex를 주면, 자식 요소들이 가로 방향(row)으로 나란히 배치된다.1️⃣ justify-content (가로 정렬)요소들을 가로선(메인 축) 상에서 정렬한다.값설명flex-start왼쪽 정렬 (기본값)flex-end오른쪽 정렬center가운데 정렬space-between요소 사이에 동일한 간격space-around요소 주위에 동일한 간격space-evenly요소 사이와 양 끝 모두 동일한 간격.container { justify-content: center; /* 가로 가운데 정렬 ..

🎨 Frontend/CSS 2026.02.12

[TIL] 2026년 01월 07일

ORM 매핑이 필요한 이유객체와 관계형 데이터베이스가 관계를 표현하는 방식의 근본적인 차이가 있습니다. 객체는 서로 다른 객체를 '참조'하며 관계를 맺습니다. 반면에 테이블은 '외래 키' 값을 통해 다른 테이블의 데이터를 연결하죠. 이 차이 때문에 ORM 매핑이 필요합니다. 🚀 메모리(객체) ↔ 저장소(테이블) 관계에서 JPA가 중간(영속성 컨텍스트)에서 무엇을 하는지핵심: 코드에서는 객체 참조로 관계를 만들고, JPA가 그걸 DB의 FK로 바꿔서 저장한다. 1) 엔티티(객체) 쪽 코드: "객체 참조"로 관계 표현@Entity@Table(name = "TEAM")public class Team { @Id @GeneratedValue private Long id; private Stri..

🚀 Growth/TIL 2026.01.07

[TIL] 2026년 01월 05일

JPA 매핑 정보는 XML이나 어노테이션 중에 선택해서 기술하면 된다. 그럼 XML은 무엇일까? XMLXML(eXtensible Markup Language)은 데이터를 구조화하고 저장하며 전송하기 위한 확장 가능한 마크업 언어로, HTML과 비슷하지만 미리 정의된 태그 없이 사용자가 직접 태그를 정의하여 데이터의 의미와 구조를 설명한다. 사용 방식JPA에서 XML로 매핑을 쓰는 방식은 표준적으로 orm.xml(JPA ORM 매핑 파일) 을 두고, 이를 스프링 부트/JPA 설정에 “매핑 리소스”로 등록하는 형태이다. (즉, 어노테이션 대신 또는 어노테이션을 “덮어쓰는” 용도로 XML을 쓴다.) 1) orm.xml 파일을 어디에 두나요? 가장 흔한 기본 위치는 아래입니다.src/main/resources..

🚀 Growth/TIL 2026.01.05

[Spring Boot, React] 독서 습관 관리 서비스(1차 개발)

1. 프로젝트 소개이 프로젝트는 Spring Boot와 React로 구현한 풀스택 독서 습관 관리 서비스입니다. 독서 기록과 목표 설정, 차트 기반 진행률 시각화를 통해 사용자가 독서 성과를 객관적으로 추적하도록 설계했습니다. 독서 내용을 체계적으로 기록해 기억을 강화하고 습관화를 돕는 서비스가 필요하다고 판단해 주제로 선정했습니다. 2. 기술 스택Backend(Spring Boot)구분기술버전용도프레임워크Spring Boot3.3.0메인 백엔드 프레임워크언어Java17서버 사이드 로직ORMSpring Data JPA (Hibernate)-데이터베이스 연동보안Spring Security-인증/인가, 세션 관리템플릿Thymeleaf-서버 사이드 렌더링 (SPA 폴백)암호화BCryptPasswordEncod..

[스프링] 프로필(Profile)이란?

ProfileSpring Boot에서 프로필은 실행 환경을 구분하기 위한 태그 같은 개념이다. 대표적으로 개발(dev)/테스트(test)/운영(prod) 환경마다 DB 접속 정보, 로깅 레벨, 외부 API 키, 캐시 및 보안 설정 등이 달라지는데, 코드를 건드리지 않고 설정 파일만 바꿔 끼울 수 있게 해 주는 기능이다. 프로필용 설정 파일("프로필 파일") 구조파일 이름when load역할application.properties 또는 .yml항상 로드되는 공통 설정JPA, Flyway 같은 공통 옵션application-dev.propertiesdev 프로필이 활성화됐을 때만H2 메모리 DB, 디버그 로그application-prod.ymlprod 프로필이 활성화됐을 때만MySQL 접속 정보, 로깅 최소..

[스프링] @RequestParam 어노테이션

@RequestParamHTTP 요청에서 전달된 "파라미터 값"을 컨트롤러 메서드의 매개변수로 바인딩해주는 어노테이션이다.쉽게 말하면, 클라이언트가 요청할 때 URL이나 폼에 같이 보낸 값을 변수로 받아주는 역할이다. 🔍 예제 1: GET 요청에서 사용📌 요청 URLGET /greet?name=홍길동 📌 컨트롤러@GetMapping("/greet")public String greet(@RequestParam String name) { return "안녕하세요, " + name + "님!";}?name=홍길동 → @RequestParam String name으로 전달결과 : "안녕하세요, 홍길동님!" 🔍 예제 2: POST 폼 데이터에서 사용📌 HTML 폼 로그인 📌 컨트롤러..

[스프링] 요청 매핑 어노테이션

요청 매핑이란?요청(request)은 클라이언트(브라우저, 앱 등)가 서버로 보내는 메시지다. 예를 들어,GET /helloPOST /login이런 요청을 어떤 메서드가 처리할지 연결(매핑) 해주는 것이 바로 요청 매핑(Request Mapping)이다. 동작 방식@GetMapping("/hello")public String sayHello() { return "Hello!";}클라이언트가 GET /hello 요청을 보낸다.스프링은 "/hello"를 처리할 수 있는 메서드를 찾는다.sayHello() 메서드가 매핑되어 있으니까, 이 메서드가 실행된다.반환값으로 "Hello!"가 응답으로 돌아간다. 📌 주요 요청 매핑 어노테이션들어노테이션의미@RequestMapping범용 요청 매핑(GET, PO..

[스프링] @ResponseBody, ResponseEntity

@ResponseBody이 어노테이션은 리턴값을 HTTP 응답 바디에 직접 넣겠다는 의미이다. 사용 예시@Controller@ResponseBodypublic class MyController { @GetMapping("/hello") public String hello() { return "Hello, world!"; }} @Controller만 사용한 경우@Controllerpublic class MyController { @GetMapping("/hello") public String hello() { return "hello"; // → templates/hello.html 같은 뷰를 찾음 }}스프링은 리턴값을 뷰(View)의 이름으로 처..

[스프링] 2025-07-02

📁 file.upload-dir=uploads/ 의미 이 설정은 파일 업로드를 위한 저장 경로를 지정하는 사용자 정의 프로퍼티이다. 🛠️ 사용 예시 📍 application.propertiesfile.upload-dir=uploads/file.upload-dir은 Spring Boot에서 직접 제공하는 공식 키는 아니고, 개발자가 커스텀해서 사용하는 키이다.uploads/는 프로젝트 루트 또는 지정된 경로 기준으로 파일을 저장할 디렉토리 경로이다. (상대 경로) 📍 Java 코드 (예: @Value 사용)@Value("${file.upload-dir}")private String uploadDir;Java 코드에서 @Value로 주입받아 파일 저장 경로로 사용한다. 📍 파일 저장 로직 P..

🚀 Growth/TIL 2025.07.02

[스프링] application.properties 파일

application.propertiesSpring Boot에서 설정 정보를 저장하는 파일이다. 주로 다음과 같은 설정들을 포함한다. ✅ 기본 구조키=값모든 설정은 키=값 형식으로 작성되며, Spring Boot가 이 키를 기준으로 자동 설정한다. 📌 자주 사용하는 설정 예시1. 서버 설정server.port=8083 # 서버 포트 번호 설정 (기본값은 8080)server.servlet.context-path=/api # API의 기본 경로 설정 2. 데이터베이스 설정spring.datasource.url=jdbc:mysql://localhost:3306/mydbspring.datasource.username=rootspring.datasource.password=1234spring.data..

[H2 DB] 완전 삭제 후 재설치 방법(Spring Boot 프로젝트 하면서 생긴 문제)

🔥 H2 데이터베이스 완전 삭제 방법✅ Uninstall.exe 실행✅ 남은 파일 삭제 (C:\Program Files\H2\, jpashop.mv.db 등)✅ 환경 변수에서 H2 관련 경로 삭제✅ 레지스트리 정리 (Windows 한정)✅ PC 재부팅 후 H2 최신 버전 다운로드 & 재설치✅ http://localhost:8082 접속하여 정상 작동 확인1️⃣ H2 제거 (Uninstall.exe 실행)C:\Program Files\H2\ 또는 C:\H2\로 이동Uninstall.exe 실행삭제가 완료되면 PC를 재부팅 (필수는 아님)※ Program Files에 없으면 Program Files(x86) 폴더에서 찾아보면 된다. ※ 나는 Unistall 후 H2 폴더를 삭제하려고 하는데 안 돼서 재부팅..

728x90