profile
나만의 개발 일기
post-thumbnail

Spring AOP 개념 정리: 핵심 기능과 공통 기능의 분리

AOP는 공통 기능을 한곳에 모아 관리함으로써 핵심 로직을 더 깔끔하게 만드는 스프링의 중요한 개념이다. 로깅, 보안, 트랜잭션 같은 반복 코드를 분리하여 유지보수를 쉽게 해준다.

2025년 11월 24일
·
0개의 댓글
·
post-thumbnail

Spring DI 정리: 왜 의존성 주입이 중요한가?

스프링에서 DI(의존성 주입)는 객체 간의 결합을 낮추고 더 유연한 구조를 만들기 위한 핵심 개념이다. 필요한 객체를 직접 생성하지 않고 외부에서 주입받아, 유지보수성과 확장성이 크게 향상된다.

2025년 11월 24일
·
0개의 댓글
·
post-thumbnail

프로그래밍 언어(JAVA)

프로그래밍 언어(JAVA) 정리

2025년 11월 17일
·
0개의 댓글
·
post-thumbnail

AI 챗봇은 어떻게 대화를 '기억'할까?

LLM(거대 언어 모델) 자체는 '기억'이 없습니다(Stateless). 매번의 API 호출은 완전히 독립적입니다. "안녕"이라고 말한 뒤 "내 이름이 뭐야?"라고 물으면, LLM은 "안녕"이라는 이전 대화를 모르기 때문에 대답할 수 없습니다.'기억'을 구현한다는 것은

2025년 10월 27일
·
0개의 댓글
·
post-thumbnail

머신러닝 기본 개념 정리(AICE 시험대비)

안녕하세요. AICE 시험을 준비하며 꼭 알아야 할 머신러닝 핵심 개념들을 정리해 보았습니다.1\. 데이터 스케일링 (Scaling) 3대장데이터를 모델에 학습시키기 전, 피처들의 단위를 맞춰주는 전처리 과정입니다. 왜 할까요? 만약 '키(cm)'와 '나이(세)'를 함

2025년 10월 20일
·
0개의 댓글
·
post-thumbnail

[Android] 📅 Kotlinx.datetime을 활용한 PhotoCalendar 오픈소스 기여하기

Jetpack Compose 기반 캘린더 오픈소스 라이브러리 "PhotoCalendar" 프로젝트 기여하기

2025년 3월 16일
·
0개의 댓글
·
post-thumbnail

😵‍💫Preview 때문에 코드가 너무 길어요! (PreviewParameter)

안녕하세요! 오늘은 Compose를 사용하면서 Preview 코드가 너무 길어져 고민했던 경험과 이를 개선한 방법에 대해 공유하려고 합니다.버튼 컴포넌트를 만들고, 피그마 디자인에 있는 모든 버튼 스타일을 Preview로 확인할 수 있도록 코드를 작성하다 보니 Prev

2025년 2월 2일
·
0개의 댓글
·
post-thumbnail

[안드로이드] Android 지도앱으로 길찾기 연동하기(NaverMap) 트러블 슈팅

아래 내용은 네이버 지도 앱으로 특정 위치(좌표)를 표시하려는 기능을 구현하는 과정에서 발생한 문제와, 이를 해결하는 과정을 정리한 글입니다. 문제 상황 기존 코드는 다음과 같은 방식으로, 기기에 런처 아이콘이 있는 앱들을 전부 조회(queryIntentActivities)한 뒤, 결과 목록이 비어 있으면 “네이버 지도 설치 필요”로 판단하여 마켓으로 이...

2025년 1월 7일
·
0개의 댓글
·
post-thumbnail

[Android] Hilt @Binds와 @Provides

Hilt 라이브러리를 이용해 의존성을 주입하는 경우에 Module에서 abstract class에는 @Binds 어노테이션이, object에는 @Provides 키워드가 붙게 되는데 어떤 이유에서인지 알아보겠습니다.작성한 예시 코드를 보여드리며 설명하겠습니다.@Bind

2024년 11월 18일
·
0개의 댓글
·
post-thumbnail

[SOPT] 35기 ANDROID 서류/면접 합격 후기

이제 4학년 1학기.. 마지막으로 연합동아리를 할 수 있는 기회.. 공고가 올라오자마자 바로 넣어야겠다 생각했다.여러 연합동아리가 있었지만 SOPT라는 동아리가 유명하다는 것도 주변 사람들을 통해 알고 있었고 졸업 프로젝트를 SOPT OB분과 같이 했었는데 잘하셔서 꼭

2024년 11월 11일
·
0개의 댓글
·
post-thumbnail

[Android] 멀티모듈이란?

멀티 모듈 구조란 하나의 안드로이드 앱 프로젝트를 여러 개의 모듈로 나누어 개발하는 구조에요. 각 모듈은 독립적으로 기능을 수행하며, 필요에 따라 서로 간에 데이터나 기능을 공유할 수 있어요.일반적으로 멀티 모듈 구조는 도메인 모듈, 데이터 모듈, 프레젠테이션 모듈 등

2024년 11월 11일
·
0개의 댓글
·
post-thumbnail

[Android] DI, Hilt

저는 이번 블로그 포스팅은 그 동안의 피드백 부분을 가지고 다시 한번 정리하면서 기록해볼까 합니다. 사실 이해가 잘 되지 않았습니다.. (그래서 공부하면서 정리하겠다고 했습니다..)한 클래스는 종종 다른 클래스를 참조합니다. 예를 들면, Car라는 클래스는 Engine

2024년 11월 4일
·
0개의 댓글
·
post-thumbnail

NoSQL과 MySQL

여러분, 데이터베이스 선택이 얼마나 중요한지 아시나요? 현대 애플리케이션에서 데이터베이스는 그야말로 중심 역할을 합니다. 올바른 데이터베이스를 선택하는 것은 프로젝트의 성공을 결정짓는 중요한 요소 중 하나입니다. 저는 이번 글에서 대표적인 관계형 데이터베이스인 MySQ

2024년 10월 28일
·
0개의 댓글
·
post-thumbnail

[SOPT] Week1 - 필수과제 (Android Compose)

SOPT 1주차 과제는 Wavve 클론 코딩이고, 3가지(필수과제, 심화과제, 도전과제)로 나누어져 있습니다.그 중 가장 첫번째 필수과제 스터디 내용을 공유해보려고 합니다. SignInActivityHide, Show 에 따라 비밀번호 visible 구현putExtra

2024년 10월 8일
·
0개의 댓글
·
post-thumbnail

[SOPT] 솝보딩 “나야 Git”

일단 먼저 SOPT 에서 협업을 하기 전에 git 과 github 에 대해서 간략하게 설명해주신다고 하셔서 듣게 되었습니다.SOPT에서 배우고 싶은 부분이 깃과 깃허브 및 협업 방식이었기 때문에 달려갔습니다.초기 내용을 요약하자면 Git 과 GitHub 에 대한 설명을

2024년 10월 4일
·
0개의 댓글
·
post-thumbnail

[알고리즘] Greedy

탐욕 알고리즘 또는 그리디 알고리즘(greedy algorithm)은 문제를 해결할 때 매 순간 가장 최적이라고 생각되는 선택을 하는 알고리즘 설계 기법입니다. 이러한 선택은 그 순간에 대해서는 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답

2024년 10월 4일
·
0개의 댓글
·
post-thumbnail

[Android] MVI 란?

디자인 패턴(Design Pattern) 객체 지향 프로그래밍 설계 시 자주 발생하는 문제를 해결하기 위해 디자인 패턴을 사용합니다. 특히 여러 사람이 협업하는 개발 환경에서, 다른 사람이 작성한 코드나 기존 코드를 이해하고 수정하는 것은 매우 어려운 작업입니다.

2024년 9월 29일
·
0개의 댓글
·
post-thumbnail

[Android] 안드로이드 4대 컴포넌트

설명: 하나의 화면을 나타내는 컴포넌트로, 사용자와 상호작용할 수 있는 UI 요소입니다.역할: 사용자 인터페이스를 구성하고, 사용자의 입력을 처리하며, 화면 간 전환을 관리합니다.예시: 로그인 화면, 홈 화면, 설정 화면 등 각각의 화면이 액티비티로 구현됩니다.중요한

2024년 9월 25일
·
0개의 댓글
·
post-thumbnail

[자료구조] Classes and Objects: A Deeper Look - 2

모든 객체는 this 라는 키워드로 자신에 대한 참조를 엑세스할 수 있습니다.특정 객체에 대해 인스턴스 메서드가 호출될 때 메서드의 본문은 this 키워드를 암시적으로 사용하여 객채의 인스턴스 변수 및 기타 메서드를 참조합니다.클래스의 코드를 사용하여 어떤 개체를 조작

2024년 9월 19일
·
0개의 댓글
·
post-thumbnail

[자료구조] Classes and Objects: A Deeper Look

클래스 구축, 클래스 멤버에 대한 엑세스 제어, 생성자 생성에 대해 자세히 알아보기문제가 발생했음을 나타내기 위해 예외를 throw 하는 방법을 보여줍니다.구성(Composition) - 클래스가 다른 클래스의 객체에 대한 참조를 멤버로 가질 수 있게 해주는 기능입니다

2024년 9월 4일
·
0개의 댓글
·