전체 글 51

NAVER DAN25 다녀온 가벼운 후기

시작부터 이런 얘기 어떨지 모르겠지만, 사실 네이버의 컨퍼런스인 DAN25는 처음이다.내가 생각하기에, 그리고 주변 지인들을 보면 주니어 입장에서 우아한형제들 우아콘, 토스 Makers conference 같은게 좀 더 와닿는 이야기를 하는 것 같다.DAN은 언제부턴가 AI 관련 이야기를 많이 하는 느낌..? 이전 DEVIEW 시절이나 사내 엔지니어링데이 세션이 주니어인 내 입장에서는 더 흥미롭고 재밌게 들었던 것 같다. 그럼에도 DAN에서 얻어갈 수 있는 것은 네이버에서 진행하는 최신 프로젝트와 시스템/알고리즘에 대한 힌트를 얻을 수 있는게 장점인거 같다. 또 컨퍼런스를 하면 세션 뿐만 아니라 최근 네이버에서 집중하는 사업에 대한 체험과 부스를 둘러 볼 수 있는데, 이게 또 재미있는 편이다. 나는 현재..

회고 2025.11.30

[프론트엔드 개발자를 위한 Android] 전역상태 사용하기

사실 이 "프론트엔드 개발자를 위한 Android" 글의 타겟팅을 확장해도 되겠다는 생각을 했다. 안드 개발자분이 프론트를 해야할 때 도움이 되었다는 연락을 받았기에.. 조금 더 프론트 안드로이드 비교하는 글로 가도 되겠다는 생각을 했다. 제목과 글 방향을 한번 고민해봐야겠다. React에서 전역 상태를 사용하는 대표적인 방법은 Context API를 쓰거나 전역 상태 라이브러리(Redux, Zustand, Jotai..)를 쓰는 것이다.Android에서도 전역 상태라는 개념이 있으며, CompositionLocal가 있다.약간 개념이 다르지만 StateFlow와 함께 ViewModel도 어찌보면 전역 상태같은 느낌을 받았는데, 뒤에서 풀어보겠다.(전역에서 참조 가능한 store..?)그리고 처음에 헷..

Android 2025.11.29

[프론트엔드 개발자를 위한 Android] 제스처 이벤트 감지하기

클릭 제스처탭이라고도 하는 클릭 제스처는 modifier로 보이는 모든 컴포저블에서 감지 가능하다.SomeComposable( modifier = Modifier.clickable { })참고) selectable : clickable과 비슷한 동작이지만 UI 접근성 측면에서 이점이 있다. 내부 구현은 clickable이다.Modifier .selectable( selected = true or false, // state onClick = { }, )하지만 탭, 더블 탭, 프레스, 롱 프레스를 구분하려면 PointerInputScope 를 활용해야한다.제스처는 다음과 같이 진행된다.press -> long presspress -> tab(터치 해제)press -> ..

Android 2025.10.31

[프론트엔드 개발자를 위한 Android] 상태(State) 쓰기

클라이언트 측에서 "상태"라는 개념은 굉장히 중요하다.프론트엔드에서는 useState라는 훅으로 간단히 상태를 관리할 수 있다.안드로이드 kotlin에서는 상태를 어떻게 관리할까?remember / mutableStateOf아래에서 살펴볼 StateFlow 같은 경우에는 코틀린에서 제공하는 기능이지만,Jetpack Compose 라이브러리에서 제공하는 상태 관리 도구는 remember, mutableStateOf가 있다.(뭐.. 똑같진 않지만 React 라이브러리에서 쓰이는 useState라고 비유하면 되려나?) mutableStateOf는 Composable 스코프 내부에서 관찰 가능한 상태 객체를 만드는 함수이다.import androidx.compose.runtime.*// Composable 스코..

Android 2025.09.30

코루틴은 선점하는가?(pre-emptive)

자바스크립트에서는 하나의 스택과 이벤트 루프, 태스크 큐로 비동기를 가능케 한다.그렇다면 코틀린에서의 비동기는 어떻게 구현되는지 궁금했다.스택이 비면 태스크 큐에서 옮겨지는 자바스크립트와 달리, 코틀린에서 비동기 작업이 끝나면 어떻게 끼어들까? 코루틴은 선점(preemption) 하지 않는다.즉, 운영체제가 스레드를 강제로 뺏어가는 방식이 아니라, 개발자가 명시적으로 선언한 일시중단 지점(suspend) 에서만 실행을 멈추고 다른 코루틴에게 제어를 넘긴다.따라서 실행 중인 코드가 일시중단 지점에 도달하지 않는 한, 다른 코루틴이 끼어들어 실행될 수 없다라고 파악되었다. 코루틴이 일시중단되면, 재개(resume) 요청이 발생할 때 해당 코루틴은 디스패처(dispatcher) 가 관리하는 큐(작업 대기열)에..

Kotlin 2025.09.30

Android XR과 SDK 현황 살펴보기(with Google I/O 25) 2편

지난 Android XR과 SDK 현황 살펴보기 1편에 이어 2편에서는 SDK와 Android XR로 개발하려면 알아야하는 필수적인 개념들을 소개해보고자 한다. 비전 프로나 오큘러스를 써본 사람이라면 알겠지만, 각 플랫폼마다 지칭하는 용어가 다르다. 특히, Android XR 같은 경우에는 Jetpack Compose 기반으로 라이브러리화 해두는 방향이기에 코드 스타일도 Compose와 동일하다.Compose를 알고 이번 글에서 설명하는 XR 개념만 안다면 바로 Android XR SDK로 개발을 할 수 있을 정도일 것이다. Android SDK 중 하나Andrpod XR SDK는 폴더블, 웨어러블 SDK처럼 안드로이드에서 붙일 수 있는 하나의 SDK라고 생각하면 편할 것이다.뭔가 새로운 개발 플랫폼이 ..

Android 2025.08.31

Android XR과 SDK 현황 살펴보기(with Google I/O 25) 1편

최근 하반기에 나올 삼성의 무한 XR기기 프로젝트와 Google IO에서 핫했던 Android XR 관련하여 조사 및 간단한 앱 구현을 해보았다.이 과정에서 알게된 개념과 SDK 관련한 부분을 정리해보고자 한다.아마 SDK 관련된 부분은 지금도 활발히 개발중이라 나중에 보면 꽤 많은 부분이 바뀌어 있을지도 모른다. 당장만 해도 2주만에 SDK가 바뀌어 빌드 오류가 나기도 했으니 말이다.. 이번 글 에서는 헷갈리는 용어들을 간략히 정리하고(AR, VR, MR, XR), Android XR을 살펴볼 예정이다.이후 2편에서는 Android XR SDK를 살펴보고 개발하면서 느낀 중요한 개념 몇가지를 짚어보겠다. 1. AR / VR / MR, 그리고 XR- AR (Augmented Reality, 증강현실) 이..

Android 2025.08.31

jaewi님은 혹시 안드세요?(feat.상반기 회고)

네. 안드입니다.프론트엔드로 입사했지만 자대배치를 안드로이드로 받았다. 갤럭시 S2 이후로 쭉 앱등이였던 내가,모든 활동, 경력, 프로젝트가 프론트엔드였던 내가,네이버 프론트엔드를 꿈꾸고 들어왔던 내가, 자바진영은 깔짝만 해봤는데 어째서...? 살면서 첫 반기별 회고글 start ✨인턴 생활열심히 첫 인턴 생활에 적응 중인 인턴 2주차였다.이때 처음 실무에서 찐 배포되는 개발을 해보며 많은 것을 느꼈다.아.. 진짜 JS에 클래스형 컴포넌트가 있구나..와 진짜 빠르게 개발하신다들..부족함을 정말 많이 느꼈다. 프론트엔드 개발자이면서 마크업에서도 시간을 오래 잡아먹었다. 특히 익숙하지 않은 컨벤션에 적응하는데에 꽤 많은 코드리뷰 과정을 거쳐야했다.그때의 사수분들께 이렇게나마 감사의 인사를 전하고 싶다. 그럼..

회고 2025.07.31

2025 팀네이버 신입공채 합격후기-Tech 프론트엔드

아직도 실감이 나지 않지만, 나도 많은 선배들의 합격 후기를 보고 힘도 얻고 준비 방향을 얻었기 때문에 기록 겸 후배 응원차 합격 후기를 남긴다. 그리고 무수히 날아오는 "어떻게 준비했어요?"에 대한 답이다.또 나중에 연차가 쌓이고 이 글을 보며 간절했던 마음을 다시 되새기길! (미래의 나야!) * 개인적인 소감에 대한 글이고, 어떤 오픈된 자료를 보고 공부했는지만 포함되어 있습니다. 실제 면접 관련 정보나 공식적으로 전달받은 내용은 없습니다.진행했던 절차는 다음과 같았다.- 서류 전형(이력 + 자소서)- 코딩테스트(알고리즘 + CS 문제)- 1차 기술 역량 인터뷰- 종합 역량 인터뷰 서류 전형자소서가 굉장히 중요한 것 같다. 서류 + 코딩테스트를 종합적으로 판단하여, 1차 기술 역량 인터뷰 대상을 선발..

회고 2025.07.31

직접적인 의존성을 갖지 말자

스프링을 써보다가 의존성 관련한 이야기를 정말 많이 본다.하다보니 자연스럽게 프론트에서는 어떻게 활용해 볼 수 있을지 상상해보곤 했다. 예를 들어, fetch를 다음과 같이 쓰고 있었다고 해보자useEffect(() => { const fetchPosts = async () => { try { const response = await fetch( 'https://jsonplaceholder.typicode.com/posts?_limit=5', );// ... 여기서 fetch API와는 너무 직접적인 의존성을 갖는다.Fetch API가 쉽게 바뀌진 않겠지만 혹여 fetch에 들어가는 파라미터가 바뀌어 코드를 변경해야할 일이 생긴다면 어떨까?fetch를 쓰는 모든 부..

프론트엔드 2025.06.30

Seoulana 2025 해커톤 Bitcoin on Solana 트랙 3등, 그리고 미세 팁

4월 4일 ~ 6일, 처음으로 2박 3일 해커톤을 나갔다.카이스트 소속 오라클 학회로 나가는 첫 행사이기도 했다.그동안의 해커톤에서 느꼈듯 첫 마음가짐은 적당히 수면을 취하고 해보자였으나.. 결국 하루에 3~4시간 자고 쭉 회의와 개발을 하였다.결과는 Bitcoin on Solana 트랙에서 3등을 수상했다!블록체인 해커톤에서 첫 수상이어서 힘들었던 기억이 모두 미화되었다 ㅎㅎ상금 1000USDT가 달달하더라.Web3 해커톤은 최고다항상 느끼지만 Web3 해커톤, 특히 메인넷 해커톤은 규모도 크고 상금, 지원도 짱짱하다.매끼 넘치는 밥과 간식을 넣어준다. 또 메인넷 재단에서 기술적, 비즈니스적 조언 및 지원 또한 상당하다.시니어 엔지니어 분과 현업, 그리고 스폰서 트랙의 메인테이너가 오피스 아워도 운영하..

Web3 2025.06.30

IntelliJ 자주 쓰는 단축키 모음

요즘 우테코에서 했던 프로젝트의 백엔드에 기능을 추가하고 수정하기위해 스프링을 공부해보고 있다.그러면서 자연스럽게 인텔리제이를 접했는데, VSC 단축키와 달라서 메모해놓는다. 편리한 기능이 꽤 있는 것 같고, 스프링도 생각보다 재밌다.백엔드 팀원에게 요청하면 되지 않냐고? 5명이 다 취업해서 바쁘다. 직접 해야한다. 프론트도 나빼고 다 일한다.코드잽이 좋은 프로젝트였던 것 같다. 얼른 졸업해야지..유틸리티 단축키cmd + n ⇒ 새로 만들기cmd + shift + n => 새 스크래치 파일 만들기cmd + e ⇒ 최근 들어간 파일 검색 및 조회cmd + shift + O ⇒ 파일 검색 (VSC cmd+p)cmd + shift + t ⇒ 해당 메서드의 새로운 테스트 만들기ctrl + shift + R ⇒ ..

백엔드 2025.06.09

정보처리기사 필기 2일 벼락치기 합격과정

주의) 공부시간이 확보된 2일이었습니다전공 수업으로 네트워크와 데이터베이스 과목을 듣고, 최근 면접 준비를 하며 복습을 했었습니다.또 C언어나 파이썬은 써본 적이 있구요.그래도 웹개발을 하며 애자일이나 스크럼 같은 개념은 알고 있었습니다. 취업준비를 시작하며 텅텅 빈 제 이력서의 자격증란을 뭐라도 채워보고자 이전에 신청했던게 벌써... 필기 시험 날짜가 다가왔더군요.주변 친구들이 기출만 보고 가면 된다고 하여 방심하고 있다가 기출을 풀어보니 처음 보는 개념들이 많았습니다...얼핏 알고 있던 정의들을 알아야하고, 생소한 신기술 용어도 있더군요.그래도 벼락치기로 60점만 넘으면 되니, 기록 겸 어떻게 준비했는지 작성해보고자 합니다. 중요도 (상) - 기출만 봐도 된다문제은행식인지 지난 기출과 선지까지 같은 ..

회고 2025.05.28

CSS in JS vs CSS in CSS

각각의 장단점과 어떨 때 무엇을 쓰면 좋을까?이전 우테코 프로젝트를 할때는 Emotion CSS를 사용한 바 있고, 해당 기술 사용을 결정할 때 조사했던 부분이 있다.(Github Wiki)그럼에도 CSS in JS의 기술적 기반, 배경에는 뭐가 있는지 명확히 알아보았다. 비슷한 볼륨의 프로젝트는 아니지만, SCSS 기반보다 Emotion CSS 기반 프로젝트가 초기 로딩 속도가 300ms 느린 것을 확인했다.왜 그럴까?각각의 장단점CSS in CSS장점초기 렌더링이 빠르다. CSS는 HTML 파싱 중 병렬로 로드되므로 렌더링을 차단하지 않는다.CSS 정적파일이므로 브라우저 캐싱이 쉽다. (재방문시 속도 빠름)스타일 적용 시점이 CSS 파일 로드 직후이다.따라서 런타임 비용이 없다모든 CSS 파일을 로딩..

프론트엔드 2025.05.16

글쓰기모임 "NotGPT" 낫지를 만들며

왜 시작했는가? 요즘 어떤 글을 쓸 때, 꼭 GPT와 함께 시작하거나 막힐 때도 함께 하였다.문득 그런 생각이 들었다. GPT가 없을 때는 어떻게 했지? 조금씩 AI에 대한 의존을 많이 할수록 혼자 힘으로 생각해내고 나의 사고 근육, 뇌의 힘이 줄어드는 느낌을 받았다.사고가 정지된달까?점점 더 쉬운 길을 찾게 되고 한번 편한 맛을 보니 자꾸만 그 맛을 떠올리게 되었다. 하지만 무협지에서는 정도를 걷고 정진해야 고수가 된다.기연에만 의존해서는 안되고 그 기연을 잘 받아 내 것으로 만드려면 그 만큼의 큰 그릇과 준비가 되어있어야한다. 욕심을 부려 마성에 물들지 않게 조심해야한다. NotGPT(낫지)는 AI가 없으면 빈 문서에서 깜빡이는 커서만 멍하니 바라보고 있는 우리 세대와 함께,한달에 한두편이라도 작은 ..

회고 2025.05.07

[운영체제] 시스템콜

최근 CS 기술 면접 대비에 시간을 많이 쓰고 있다.여러 자료 + 이전 강의에서 본 내용을 보면서 GPT와 모의면접을 하고 있는데, 생각보다 시간이 엄청 쓰인다.이렇게 시간을 많이 쓰는데 면접이 끝나고, 붙으면 좋겠지만 혹여 떨어지면 지금 준비하는 이 시간이 아무것도 안한 시간이 될까봐. 그리고 분명히 작년 11월 즈음 면접 준비를 하긴 했는데, 기억에서 날라가버렸다..뭐라도 남겨보자는 심정과 노션에 흩어진 글을 조금이라도 정제해보자는 마음으로 이 포스팅을 시작하였다.주로 GPT + VSFe 님의 기술면접 질문 모음집을 참고하였다.질문과 답변 모두 신입 개발자의 입장에서 쓰여진 것이니 오류나 말이 안 맞는 것이 있을 수 있다. 혹은 더 좋은 답변이 있을 수 있다.이를 발견하여 제게 알려주신다면 커피..라..

CS지식 2025.04.21

[자료구조] 연결리스트

최근 CS 기술 면접 대비에 시간을 많이 쓰고 있다.여러 자료 + 이전 강의에서 본 내용을 보면서 GPT와 모의면접을 하고 있는데, 생각보다 시간이 엄청 쓰인다.이렇게 시간을 많이 쓰는데 면접이 끝나고, 붙으면 좋겠지만 혹여 떨어지면 지금 준비하는 이 시간이 아무것도 안한 시간이 될까봐. 그리고 분명히 작년 11월 즈음 면접 준비를 하긴 했는데, 기억에서 날라가버렸다..뭐라도 남겨보자는 심정과 노션에 흩어진 글을 조금이라도 정제해보자는 마음으로 이 포스팅을 시작하였다.주로 GPT + VSFe 님의 기술면접 질문 모음집을 참고하였다.질문과 답변 모두 신입 개발자의 입장에서 쓰여진 것이니 오류나 말이 안 맞는 것이 있을 수 있다. 혹은 더 좋은 답변이 있을 수 있다.이를 발견하여 제게 알려주신다면 커피..라..

CS지식 2025.04.20

[알고리즘] 시간복잡도와 공간복잡도

최근 CS 기술 면접 대비에 시간을 많이 쓰고 있다.여러 자료 + 이전 강의에서 본 내용을 보면서 GPT와 모의면접을 하고 있는데, 생각보다 시간이 엄청 쓰인다.이렇게 시간을 많이 쓰는데 면접이 끝나고, 붙으면 좋겠지만 혹여 떨어지면 지금 준비하는 이 시간이 아무것도 안한 시간이 될까봐. 그리고 분명히 작년 11월 즈음 면접 준비를 하긴 했는데, 기억에서 날라가버렸다..뭐라도 남겨보자는 심정과 노션에 흩어진 글을 조금이라도 정제해보자는 마음으로 이 포스팅을 시작하였다.주로 GPT + VSFe 님의 기술면접 질문 모음집을 참고하였다.질문과 답변 모두 신입 개발자의 입장에서 쓰여진 것이니 오류나 말이 안 맞는 것이 있을 수 있다. 혹은 더 좋은 답변이 있을 수 있다.이를 발견하여 제게 알려주신다면 커피..라..

CS지식 2025.04.18