Android Compose 시대: 우리가 알던 MVVM이 MVI를 닮아가는 이유
·
IT 기술
2026년 현재, 많은 기업들이 안드로이드 개발 표준을 Jetpack Compose와 UDF(단방향 데이터 흐름)로 강력히 밀고 있습니다. 안드로이드 개발자에게 MVVM 패턴은 이미 익숙한 패턴입니다. 하지만 Jetpack Compose를 사용하기 시작하면서, 우리가 알던 MVVM의 모습이 조금씩 변하고 있습니다. 최근에는 "이게 MVVM이야? 아니면 MVI야?"라는 말이 나올 정도로 두 패턴의 경계가 모호해지고 있죠. 이번 블로그에서는 왜 이런 변화가 일어나고 있는지 구글의 권장사항과 함께 작성해 보겠습니다! 1. XML에서 Compose로구글이 XML에서 Compose를 도입한 가장 큰 이유는 '상태와 UI의 일치' 때문입니다. ❌ XML의 한계 (명령형)XML 방식은 개발자가 findViewByI..
DX를 넘어 AX로: 현대차와 넷플릭스로 알아보는 AX 성공 사례
·
IT 기술
불과 얼마 전까지 IT 업계의 관심사가 DX(Digital Transformation)였다면, 이제는 AX(AI Transformation)의 시대입니다! DX가 '아날로그에 디지털 기술을 도입하여 데이터 기반으로 시스템을 구축하는 것'이였다면, AX는 'DX에서 도입된 데이터를 AI가 분석하고 판단하며 실행까지 하는 것'을 의미합니다. 즉, AX는 DX의 완성형이자 다음 단계라고 볼 수 있죠! 1. 왜 지금 전 세계가 AX에 열광하는가?DX를 성공적으로 마친 기업일지라도 여전히 해결하지 못한 한계가 있었습니다. - 데이터 과부하: 데이터는 많아졌지만 최종 결정은 사람이 내리기 때문에 방대한 양의 데이터를 일일이 분석하기엔 한계 존재- 수동적 자동화: 사람이 정해준 규칙(RPA, Robotic Proc..
AI Assistant 활용과 검증: 생산성을 넘어 신뢰성으로
·
IT 기술
최근 개발 현장에서 GitHub Copilot, Gemini, ChatGPT 같은 AI Assistant는 선택이 아닌 필수 도구가 되었습니다. 하지만 개발자로서 AI 도구를 단순히 '사용'하는 것이 아닌, 이를 '검증'하고 '관리'할 줄 알아야합니다. 오늘은 왜 이러한 AI Assistant를 활용하고 검증해야 하는지 작성해 보겠습니다! 1. 왜 AI Assistant의 '검증'이 중요한가?과거의 개발자들은 오류 사항이나 문제점이 생기면 'Stack Overflow'라는 서비스를 통해 답을 찾았습니다. 하지만 이제는 IDE 안에서 실시간으로 코드가 생성되어 손쉽고 편리하게 코드를 작성할 수 있게 되었죠. 하지만 이 과정에서는 다음과 같은 위험 요소가 발생합니다. - 할루시네이션: 존재하지 않는 라이브..
2024-2025 GDGoC SWU 3기 안드로이드 수료 후기
·
활동
❓ GDGoC SWU란GDG on Campus, SWU는 Google Developers가 후원하는 서울여자대학교 학생들을 위한 대학생 개발자 커뮤니티 그룹입니다. 현실에서 마주하는 사회 문제의 해결 방안을 제시함으로써 사회에 긍정적인 영향을 미치는 개발자 커뮤니티가 GDG SWU의 비전입니다. 📅 GDG SWU 3기 활동 기간 : 2024. 09 ~ 2025.08(내가 참여한 활동들만 작성했으며, 이외에도 다양한 활동들이 많이 있었으니 GDG SWU 인스타그램을 참고하길 바란다) ☝🏻 OB 인수인계나는 2기 수료 후, 3기도 연달아 참여하는 것이기 때문에 OB 멤버에 해당됐다.매 기수마다 다르지만 이번 기수에서는 OB 멤버들이 리드와 함께 면접관으로 참여하여 멤버들을 직접 선발했다.우선 코어 멤버..
5-3. 비선형 자료 구조 - 그래프, 트리, 힙, 우선순위 큐, 맵, 셋, 해시 테이블
·
CS 스터디
1. 그래프 (Graph)그래프는 객체 간의 복잡한 연결 관계를 정점과 간선으로 표현하는 비선형 자료 구조이다. - 정점 : 연결 관계를 가지는 객체 자체- 간선 : 정점들을 연결하는 선, 정점 사이의 관계- 가중치 : 간선에 부여된 값, 정점 사이의 비용, 거리, 중요도 등을 표현 2. 트리 (Tree)트리는 그래프의 한 종류로, 사이클이 없는 비순환적 연결 구조이다. 부모-자식과 같은 계층적 관계를 표현하는 데 적합하다. 트리의 각 노드는 깊이(레벨)를 가지며, 루트 노드부터 특정 노드까지 최단 거리로 갔을 때의 거리를 말한다. 트리의 높이는 루트 노드부터 리프 노드까지의 가장 긴 거리를 말한다. 트리 내에는 서브 트리라고 하는 부분 집합도 존재할 수 있다. - 루트 노드 : 트리 구조에서 가장 ..
5-2. 선형 자료 구조 - 연결 리스트, 배열, 벡터, 스택, 큐
·
CS 스터디
1. 연결 리스트연결 리스트는 데이터와 포인트로 구성된 노드 단위로, 이를 연결하는 방식으로 데이터를 저장하는 선형 자료 구조이다. 메모리 상에 연속적으로 저장되지 않아도 되며, 포인터만 따라가면 전체 리스트를 순회할 수 있다. - 싱글 연결 리스트 : next 포인터만 가지는 것- 이중 연결 리스트 : next, prev 포인터를 가지는 것- 원형 이중 연결 리스트 : 이중 연결 리스트의 마지막 노드의 next 포인터가 헤드 노드를 가리키는 것 2. 배열배열은 동일한 타입의 데이터를 연속된 메모리 공간에 할당하여 저장하는 가장 기본적인 자료 구조이다. - 랜덤 접근 : 원하는 요소의 인덱스를 통해 주소를 알아내어 접근하는 것- 순차 접근 : 데이터를 처음부터 순서대로 하나씩 차례로 읽는 것구분배열연..
5-1. 복잡도 - 시간 복잡도, 공간 복잡도, 자료 구조에서의 시간 복잡도
·
CS 스터디
1. 시간 복잡도시간 복잡도란 알고리즘의 성능을 나타내고 효율성을 평가하는 핵심 지표로, 입력 데이터의 크기에 대해 알고리즘이 실행되는 데 걸리는 시간을 의미한다. 1) 빅오 표기법 (Big O Notation)빅오 표기법은 시간 복잡도를 표현하는 가장 일반적인 방법이다. 입력 크기(n)가 무한대로 커질 때, 실행 시간에 가장 큰 영향을 미치는 최고차항만 남겨 간소화하여 표현한다. 이는 상수항과 영향력이 작은 항을 모두 제거하고, 실행 시간을 지배하는 성장률에 집중하는 것이다. ex) T(n) = 2n^2 + 5n + 100의 시간 복잡도 : O(n^2) 2) 시간 복잡도별 속도 비교표기법명칭성장률 (속도)예시O(1)상수 시간입력 크기와 무관하게 일정배열에서 인덱스를 통해 원소 접근O(log n)로그 시..
4-7. 조인의 원리 - 중첩 루프 조인, 정렬 병합 조인, 해시 조인
·
CS 스터디
1. 중첩 루프 조인 (NLJ)중첩 루프 조인은 두 테이블을 이중 반복문을 사용하여 연결하는 가장 기본적인 조인 방식이다. 외부 테이블의 모든 행을 하나씩 순차적으로 읽으며, 읽은 행마다 내부 테이블의 모든 행을 처음부터 끝까지 순차적으로 비교하여 조인 조건이 일치하는지 확인한다. 테이블의 크기가 커질수록 속도가 느려 성능 저하가 큰 단점이 있다.for (A의 행) { for (B의 행) { if (A.key == B.key) { 결과 반환 } } } 2. 정렬 병합 조인 (SMJ)정렬 병합 조인은 두 테이블을 미리 정렬한 후, 정렬된 순서에 따라 병합하여 조인하는 수행하는 방식이다. 두 테이블을 조인 키를 기준으로 각각 정렬한 후, 정렬된 두 테이블을 동시에 처음부터 스캔하며 조인 키 값이 일치하는..