Stay Hungry Stay Foolish

분류 전체보기 436

[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; /* 가로 가운데 정렬 ..

데브코스 2026.02.12

[데브코스] 0129 영상 정리

OS 가상메모리가상 메모리는 프로세스 전체가 메모리(RAM)에 올라오지 않더라도 실행이 가능하도록 하는 메모리 관리 기법입니다. 실제 물리적 메모리 크기보다 더 큰 프로그램을 실행할 수 있게 해주는 아주 똑똑한 기술이죠. 가상 메모리의 핵심 장점물리 메모리 제약 극복: 사용자 프로그램이 실제 RAM 용량에 신경 쓰지 않고 설계될 수 있습니다.동시 수행 능력 향상: 각 프로그램이 당장 필요한 부분만 메모리에 올리므로, 더 많은 프로그램을 동시에 올릴 수 있습니다.효율적인 I/O: 프로그램 전체를 한꺼번에 메모리에 올리고 내리는(Swap) 대신, 필요한 부분만 교체하므로 입출력 횟수가 최적화됩니다. 프로그램이 실행된다는 것의 의미 (컴퓨터 구조)단순히 파일을 더블 클릭하는 것을 넘어, 컴퓨터 내부에서는 다음..

데브코스 2026.02.10

[데브코스] 0128 영상 정리

📡 DNSDNS(Domain Name System)는 도메인 이름을 IP 주소로 바꿔주는 시스템이다. 예를 들어 아래 같은 웹사이트 주소를 우리는 도메인(정확히는 “도메인 이름”)이라고 부른다.www.tistory.comwww : 흔히 말하는 호스트명(host name) 또는 서브도메인(subdomain) 라벨www 말고도 mail, blog, api 등 다른 값이 올 수 있다.그렇다면 도메인은 왜 필요할까?웹사이트에 접속한다는 건, 내 컴퓨터(브라우저)가 그 사이트를 제공하는 서버에게 요청을 보내고 데이터를 받아오는 것이다.이때 누구에게 연락하려면 전화번호가 필요하듯, 서버에게 요청하려면 IP 주소가 필요하다. 하지만 사이트마다 IP를 외우는 건 불가능하니, 외우기 쉬운 이름(도메인) 을 쓰고 실제 ..

데브코스 2026.02.09

[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..

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..

TIL 2026.01.05

[Spring Boot, React] 독서 습관 관리 서비스

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 접속 정보, 로깅 최소..

자바/스프링 2025.07.08

[스프링] @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 폼 로그인 📌 컨트롤러..

자바/스프링 2025.07.03

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

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

자바/스프링 2025.07.03

[스프링] @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.03

[스프링] 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..

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..

자바/스프링 2025.07.02

[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 폴더를 삭제하려고 하는데 안 돼서 재부팅..

TIL 2025.02.04

프로젝트 환경설정

1. Spring Initializr 를 통해 프로젝트 설정아래와 같이 프로젝트를 미리 설정하고 Generate를 클릭해 파일을 다운받아 인텔리제이에서 불러온다.  2. 파일 열기 맨 처음 파일을 불러올 때 build.gradle을 클릭해서 불러온다. 파일을 처음 열면 로딩이 길다. 라이브러리를 모두 다운받아야 하기 때문에 시간이 오래 걸린다.  3. build.gradle build.gradle 파일에서 내가 원하는 대로 파일이 설정돼 있는지 확인한다. plugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6'}group = 'jpabook'versi..

웹 애플리케이션 개발 시작

start : 2024-12-02 진행 순서1. 프로젝트 환경설정2. 도메인 모델과 테이블 설계3. 애플리케이션 기능 구현 목차1. 프로젝트 환경설정Spring BootJPAGradleThymeleaftHIBERNATETomcat2. 요구사항 분석회원 기능, 상품 기능, 주문 기능의 요구사항을 분석3. 도메인과 테이블 설계분석한 요구사항을 토대로 도메인 모델을 설계 엔티티 설계테이블 설계엔티티와 테이블을 ORM으로 매핑4. 아키텍처 구성애플리케이션 아키텍처를 간단하게 구성 5. 핵심 비즈니스 로직 개발(회원, 상품, 주문)회원, 상품, 주문 도메인 개발핵심 비즈니스 로직 개발6. 테스트테스트 케이스 검증도메인 주도 설계 이해7. 웹 계층 개발앱 기반 위에 웹 계층을 올림 뷰 컨트롤러와 뷰 템플릿을 올려서..