일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- OOP
- ava백엔드
- entity
- 소프트웨어설계
- springboot
- Stream
- Token
- 오블완
- 티스토리챌린지
- 스프링
- BEAN
- kotlin
- 토큰
- javamailsender
- 클래스
- 자바
- 객체지향
- JPA
- Spring Boot
- JPQL
- SpringFramework
- map
- Spring
- 스프링 부트
- java
- Configuration
- JWT
- 코틀린
- devpi
- Component
- Today
- Total
목록전체 글 (57)
DeveloPiano

Spring을 처음 접하면 다양한 어노테이션들과 빈(bean), 의존성 주입, 그리고 리졸버 등 익숙하지 않은 개념들이 한꺼번에 등장해 혼란스럽기 쉽습니다. 이번 포스팅에서는 @Component, @Configuration 그리고 HandlerMethodArgumentResolver(커스텀 리졸버) 같은 핵심 개념들을 정리해 보겠습니다.1. 스프링 빈(Bean)과 @Component의 의미스프링 빈이란?스프링 컨테이너가 생성하고 관리하는 객체를 빈(Bean) 이라고 부릅니다. 이 객체들은 기본적으로 싱글톤(하나만 생성)으로 관리되며, 필요한 곳에 자동으로 주입됩니다.@Component@Component는 "이 클래스를 스프링 빈으로 등록해 주세요"라는 의미의 어노테이션입니다. 스프링은 컴포넌트 스캔(Co..

웹 개발을 진행하다 보면 프론트엔드와 백엔드가 완전히 분리된 SPA(Single Page Application) 구조가 아닌, HTML, CSS, JS 파일이 모두 resources 하위에 위치한 전통적인 Spring Boot 구조를 마주하게 됩니다.이런 구조는 일반적으로 다음과 같이 불립니다:모놀리식 아키텍처(Monolithic Architecture)멀티 페이지 애플리케이션(MPA)서버 사이드 렌더링(SSR: Server-Side Rendering) 방식즉, 하나의 애플리케이션에서 뷰 렌더링과 API 처리를 모두 담당하는 구조입니다. 서버가 직접 HTML을 생성해 클라이언트에 전달하고, 사용자는 요청할 때마다 새로운 HTML 페이지를 받는 방식입니다.form action 기반 vs JavaScript..

Spring JPA로 개발을 하다 보면 new Entity()를 통해 엔티티 객체를 직접 생성하고 싶은 유혹에 빠지기 쉽습니다. 그런데 실무에서는 보통 이렇게 하지 않도록 유도하거나 제한을 둡니다. 왜 그런 걸까요?이번 글에서는 다음과 같은 내용을 중심으로 정리해보겠습니다.@NoArgsConstructor(access = AccessLevel.PROTECTED)를 사용하는 이유무분별한 빈 객체 생성을 피해야 하는 이유static 팩토리 메서드가 필요한 이유기본 생성자에 protected를 설정하면 어떤 문제가 발생할까?JPA에서는 기본 생성자가 반드시 필요합니다. 그런데 그 생성자가 protected여서 다음 코드가 컴파일 에러를 발생시키는 경우가 있습니다.// 컴파일 에러 발생MemberEntity e..

Vue.js를 배우다 보면 computed라는 개념을 필수적으로 마주하게 됩니다. computed는 Vue의 핵심 기능 중 하나로, 복잡한 연산을 효율적으로 처리하고 뷰(View)에 반영하는 역할을 합니다.이번 포스팅에서는 computed가 무엇인지, 왜 필요한지, 그리고 실용적인 사용법까지 알아보겠습니다.computed란?Vue의 computed 속성은 종속된 반응형 데이터에 따라 자동으로 다시 계산되는 속성입니다. 보통 기존 데이터로부터 파생된 값을 계산할 때 사용됩니다.특징종속된 데이터가 변경되기 전까지는 계산 결과를 캐싱함관련된 데이터가 변경될 때만 다시 계산함일반적인 메서드(methods)와 다르게 호출 형태가 아니라 속성처럼 접근기본 사용법 이름: {{ fullName }} 여기서 ..
소프트웨어 개발에는 다양한 프로그래밍 패러다임이 존재합니다. 그 중에서도 객체지향 프로그래밍(OOP, Object-Oriented Programming)과 함수형 프로그래밍(FP, Functional Programming)은 대표적인 두 가지 방식으로 널리 사용됩니다.이 글에서는 두 패러다임의 개념과 철학, 그리고 주요 차이점에 대해 정리해 보겠습니다. 어떤 상황에 어떤 패러다임이 적합한지 판단하는 데 도움이 될 것입니다.객체지향 프로그래밍(OOP)이란?객체지향 프로그래밍은 현실 세계의 사물(객체)을 코드로 모델링하는 방식입니다. 프로그램을 **데이터(상태)**와 **행동(메서드)**을 포함한 객체들의 상호작용으로 구성합니다.핵심 개념클래스와 객체: 클래스는 설계도, 객체는 그 설계도로 만든 실체캡슐화(..

Spring 프레임워크를 처음 접하면 자주 듣게 되는 용어들이 있습니다. 바로 Bean, Container, Component, Configuration과 같은 단어들이죠. 이들은 스프링의 핵심 개념으로, 서로 밀접한 관계를 가지고 있어 처음에는 다소 헷갈릴 수 있습니다.이 글에서는 각각의 개념이 무엇인지, 그리고 이들이 어떻게 서로 연결되어 있는지를 예제와 함께 이해하기 쉽게 정리해보겠습니다.Bean이란?스프링에서 **Bean(빈)**은 Spring IoC 컨테이너가 관리하는 객체를 의미합니다. 개발자가 직접 생성하는 객체가 아닌, 스프링이 대신 생성하고 주입까지 관리해주는 객체라고 생각하면 됩니다.예를 들어, 어떤 서비스 클래스를 Bean으로 등록하면 스프링이 해당 객체를 생성해 관리합니다.@Comp..

프로그래밍을 처음 배우기 시작하면 자주 듣게 되는 용어 중 하나가 바로 "인스턴스화(Instantiation)"입니다. 이 용어는 특히 객체지향 프로그래밍(OOP)에서 중요한 개념이며, 클래스(class), 객체(object), 그리고 인스턴스(instance)와 밀접한 관계를 가지고 있습니다. 이 글에서는 인스턴스화가 무엇인지, 그리고 클래스, 객체, 인스턴스와 어떤 관계가 있는지를 쉽게 설명해보겠습니다.클래스(Class)란?클래스는 설계도 또는 틀이라고 생각할 수 있습니다. 어떤 대상을 코드로 모델링할 때, 그 대상이 가질 수 있는 속성(변수)과 행동(함수)을 정의해놓은 구조입니다.class Car(val color: String, val speed: Int) { fun drive() { ..

웹이나 모바일 앱 개발에서 사용자 인증은 보안의 핵심입니다. 특히 OAuth2.0 기반의 인증 시스템에서 자주 언급되는 개념이 바로 Access Token과 Refresh Token입니다. 많은 개발자들이 처음 접할 때 이 두 토큰의 차이와 사용 목적에 대해 헷갈려 하곤 합니다. 이번 포스팅에서는 Access Token과 Refresh Token이 무엇인지, 왜 필요한지, 그리고 실제 인증 절차에서는 어떻게 사용되는지를 쉽게 설명 드리겠습니다.📌 Access Token이란?**Access Token(엑세스 토큰)**은 사용자 인증이 완료된 후 클라이언트에게 발급되는 짧은 수명의 토큰입니다. 서버는 이 토큰을 통해 사용자의 신원을 확인하고, 해당 사용자가 요청한 리소스에 접근할 수 있는지를 판단합니다.✅..

웹 개발을 하다 보면 자주 마주치는 오류 중 하나가 바로 다음과 같은 메시지입니다:Web server failed to start. Port 8080 was already in use처음 접하는 개발자라면 이 메시지가 다소 당황스럽게 느껴질 수 있습니다. 이 포스팅에서는 이 오류가 발생하는 원인과 해결 방법을 단계별로 알아보겠습니다.❓ 이 오류는 무엇인가요?간단히 말해, 8080번 포트를 이미 다른 프로그램이 사용 중이기 때문에 새로 실행하려는 웹 서버가 해당 포트를 사용할 수 없어 발생하는 오류입니다.8080번 포트는 웹 개발에서 자주 사용하는 기본 포트 중 하나로, 여러 애플리케이션(예: Tomcat, Spring Boot 등)에서 기본값으로 설정되어 있습니다.🛠 해결 방법1️⃣ 포트를 사용 중인 ..

소프트웨어 개발과 운영을 하나로 묶는 DevOps는 현대 IT 환경에서 필수적인 개념이 되었습니다. 하지만 DevOps가 하나의 프로그램인지, 혹은 특정한 프로세스를 의미하는지 헷갈리는 분들도 많습니다. 이번 포스팅에서는 DevOps의 개념, 핵심 원칙, 그리고 실무에서 어떻게 적용되는지에 대해 상세히 알아보겠습니다.📌 DevOps란?DevOps는 **Development(개발) + Operations(운영)**의 합성어로, 소프트웨어 개발과 운영 간의 장벽을 허물고 자동화, 협업, 지속적인 개선을 통해 더 빠르고 안정적인 소프트웨어 제공을 목표로 하는 개념입니다.❌ DevOps는 하나의 프로그램이나 특정한 툴이 아닙니다. ✅ DevOps는 소프트웨어 개발과 운영을 효과적으로 관리하는 과정과 문화를 의..