728x90
반응형

TIL 9

[AI] 제미나이(Gemini) API 키 발급받기

AI 기능을 서비스에 적용하려면,Google의 Gemini API를 통해 자연어 생성, 요약, 번역, 코드 생성 등 다양한 기능을 활용할 수 있습니다.예를 들어, 음식점 메뉴 설명을 자동으로 만들어주거나, 고객 질문에 대한 자동 답변을 구성하는 등의 서비스가 가능합니다. 이때 Gemini API를 사용하려면 API 키(API Key) 를 발급받아야 합니다.이 글에서는 제미나이(Gemini) API 키 발급 과정을 정리했습니다.🧭 목차Gemini API란 무엇인가Google AI Studio 접속 및 로그인Gemini API 키 발급하기API 키 확인 및 보안 관리 방법테스트 예시 (Postman)1️⃣ Gemini API란?Gemini API는 Google이 제공하는 최신 인공지능 모델 API입니다.텍..

[JPA] 영속성 컨텍스트의 기능

📝 TIL (Today I Learned) — 2025.09.25. 목요일✍️ 내일배움캠프에서 Spring 학습 중 정리한 내용입니다.왜 알아야 할까?JPA의 핵심은 영속성 컨텍스트(Persistence Context) 입니다. 영속성 컨텍스트는 단순히 엔티티를 보관하는 공간이 아니라,조회 최적화 (캐시 제공)동일성 보장SQL 실행 시점 제어 (쓰기 지연)변경 자동 감지 (Dirty Checking)와 같은 기능을 통해 개발자가 SQL을 직접 관리하지 않아도 안정적이고 효율적인 데이터 처리를 가능하게 합니다.즉, 성능 최적화와 개발 생산성을 동시에 돕는 핵심 메커니즘입니다. 👉 이번 글에서는 영속성 컨텍스트가 제공하는 주요 기능을 살펴보겠습니다.1. 1차 캐시 (First-Level Cache)영속성..

[JPA] 영속성 컨텍스트란?

📝 TIL (Today I Learned) — 2025.09.24. 수요일✍️ 내일배움캠프에서 Spring 학습 중 정리한 내용입니다.왜 알아야 할까?백엔드 개발에서는 항상 자바 객체와 데이터베이스 행(Row) 사이를 오가야 합니다.매번 SQL을 직접 작성하면 코드가 복잡해지고 유지보수가 어려워집니다.👉 이 과정을 단순화해 주는 것이 JPA이며, 그 핵심에 영속성 컨텍스트(Persistence Context) 가 있습니다. 영속성 컨텍스트는 엔티티(Entity)를 보관하고 상태를 추적하는 공간입니다.덕분에,같은 데이터를 반복 조회해도 DB를 다시 찍지 않고 캐시에서 가져올 수 있고,엔티티 변경을 자동으로 감지해서 SQL을 만들어주며,여러 SQL을 모아 효율적으로 한 번에 전송할 수 있습니다.1. 영속..

[Spring] IoC 컨테이너와 Bean — 객체를 관리하는 Spring의 방식

📝 TIL (Today I Learned) — 2025.09.23. 화요일✍️ 내일배움캠프에서 Spring 학습 중 정리한 내용입니다. 1. IoC 컨테이너와 Bean이란?앞서 1편에서 IoC(제어의 역전)와 DI(의존성 주입)를 살펴봤습니다.그렇다면 “필요한 객체를 누가 생성하고, 어디에 보관하며, 어떻게 주입해줄까?”라는 질문이 생깁니다.이 역할을 담당하는 것이 바로 Spring IoC 컨테이너입니다.Bean: Spring이 대신 생성하고 관리하는 객체IoC 컨테이너: Bean을 모아두고 관리하는 공간👉 개발자가 직접 객체를 만들지 않아도, Spring이 알아서 Bean을 준비하고 필요한 곳에 주입해줍니다.2. Bean 등록 방법@Component클래스 위에 @Component를 붙이면 Sprin..

[Spring] IoC와 DI — 좋은 코드의 핵심 원칙

📝 TIL (Today I Learned) — 2025.09.22. 월요일✍️ 내일배움캠프에서 Spring 학습 중 정리한 내용입니다.1. IoC와 DI란?Spring을 배우면 가장 먼저 접하는 단어가 IoC와 DI입니다.많은 분들이 “Spring에서만 쓰는 기능”으로 오해하지만, 사실은 객체지향 설계 원칙에서 비롯된 개념입니다.IoC (Inversion of Control, 제어의 역전)객체 생성과 제어 권한을 개발자가 아닌 외부(Spring IoC 컨테이너)에 맡기는 개념 → Spring IoC 컨테이너가 객체 생성, 의존성 연결, 생명주기 관리까지 담당합니다. 👉 “내가 직접 만들지 말고, 대신 해줄 사람에게 맡기자”DI (Dependency Injection, 의존성 주입)IoC 원칙을 구현하..

[Java] 문자열 다루기 — String, StringBuffer, StringBuilder 차이

📝 TIL (Today I Learned) — 2025.09.19.금요일✍️ 이 글은 내일배움캠프에서 Java 알고리즘 학습 중 문자열 관련 개념을 정리한 TIL입니다.1. 왜 문자열 처리가 중요할까?Java에서 문자열은 단순 출력뿐 아니라 알고리즘 문제 풀이, 웹 개발, 실무 애플리케이션에서 가장 자주 쓰이는 데이터 타입입니다.하지만 같은 문자열 연산이라도 어떤 클래스를 선택하느냐에 따라 성능과 안정성이 크게 달라집니다. Java는 문자열 처리를 위해 크게 세 가지 클래스를 제공합니다:String — 불변(Immutable) 문자열StringBuffer — 가변(Mutable) + 스레드 안전StringBuilder — 가변(Mutable) + 빠른 성능2. String — 불변(Immutable)S..

[Spring] 자바 웹 개발 흐름 정리 — Servlet부터 Spring Boot까지

📝 TIL (Today I Learned) — 2025.09.18. 목요일✍️ 이 글은 내일배움캠프에서 Spring 입문 강의를 들으며 학습한 내용을 정리한 TIL입니다.자바 웹 개발의 발전 과정오늘날 자바 웹 개발에서 Spring Boot는 사실상 표준입니다.하지만 Spring Boot가 갑자기 등장한 것이 아니라, 기존 기술의 한계를 보완하고 발전한 끝에 나온 결과물이라는 점을 알면 훨씬 더 깊이 이해할 수 있습니다. 자바 웹 개발은 다음과 같은 단계를 거쳐 발전했습니다.👉 스파게티 코드 → JSP/Servlet → Spring MVC → Spring Boot1. 스파게티 코드 (초기 웹 개발)화면, 비즈니스 로직, 데이터베이스 코드가 한 파일에 뒤섞여 있던 시기유지보수 어려움, 작은 수정도 큰 ..

[Spring] Spring MVC란? — MVC 패턴과 DispatcherServlet 동작 원리

📝 TIL (Today I Learned) — 2025.09.17. 수요일✍️ 이 글은 내일배움캠프에서 Spring 입문 강의를 들으며 학습한 내용을 정리한 TIL입니다.📚 목차자바 웹 개발의 발전 과정MVC 디자인 패턴이란?Servlet의 이해와 동작 원리Servlet의 한계점Spring MVC와 Front Controller 패턴DispatcherServlet 동작 원리1. 자바 웹 개발의 발전 과정자바 웹 개발은 시간이 지남에 따라 코드 구조와 생산성을 개선하는 방향으로 발전해 왔습니다.초기에는 화면, 로직, 데이터베이스 코드가 한 파일에 뒤섞여 있었지만, 지금은 설정 자동화와 내장 서버까지 제공하는 Spring Boot가 사실상 표준이 되었습니다. 🔄 발전 단계 흐름스파게티 코드 → JSP/..

[Spring/Lombok] 생성자 애너테이션 알아보기 — @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor

📝 TIL (Today I Learned) — 2025.09.16. 화요일 ✍️ 이 글은 내일배움캠프에서 Spring 입문 강의를 들으며 학습한 내용을 정리한 TIL입니다.🤔 Lombok을 왜 써야 할까요?Java로 개발하다 보면 같은 패턴의 코드를 반복해서 작성하게 됩니다. 특히 클래스마다 생성자, getter, setter를 만드는 작업은 시간이 많이 들고, 가독성도 떨어집니다. 예를 들어, 간단한 상품 클래스를 하나 만든다고 해봅시다:// 😵 Lombok 없이 작성하면...public class Product { private String name; private int price; // 기본 생성자 public Product() {} // 모든 필드..

728x90
반응형