안녕하세요. 점냥입니다:) 오늘은 처음으로 신입 Android 개발자 면접 후기를 가져왔습니다. 제가 이번에 면접 본 회사는 판교에 위치해 있고, 청소 매니저 서비스와 관련된 회사입니다. Android 면접 질문에 대해 공유해드릴 겸, 이번 면접 경험이 매우 만족스러워서 포스팅을 작성하게 되었습니다. 1차 면접 서류를 넣고 나서 3~5일이 지난 후, 합격 결과와 면접 일자를 정해 달라는 메일을 받게 되었습니다. 요즘 코로나로 인해서 화상 면접으로 진행될 줄 알았지만 판교에 위치한 회사에서 대면 면접으로 진행했습니다. 저는 오히려 좋았습니다. 최근에 집에만 있다 보니 ㅎ.. 그런데 면접 당일 날까지 회사 위치를 직접 공지해주지 않아서 당황했어요. 면접 날 메일로 자세히 찾아오는 법을 링크로 건네주는 회사가..
안녕하세요. 점냥입니다:) 이번 포스팅에서는 Java Thread를 외부에서 종료시키는 방법에 대해서 작성해보려고 합니다. 이 주제는 최근 기업 기술 질문에서 대답을 못한 질문 중에 하나로 정답을 찾고 정리하고자 이번 포스팅을 준비하게 되었습니다. while문에서 무한 루프를 돌고 있어 종료되지 않는 스레드, 외부에서 어떻게 강제 종료시킬 수 있는가? class SampleThread implements Runnable { @Override public void run() { while(true) { System.out.println("thread is running"); } } } 모든 Thread는 Runnable의 run() 함수 내 코드를 실행하고 함수의 모든 코드가 실행이 되면 스레드는 자동으로..
문제본문입력으로 들어오는 N! 의 결과 값에서 뒤에서부터 0이 아닌 숫자가 나올 때까지 0의 개수를 구하라문제에서 주어지는 N의 범위는 0 입니다. 팩토리얼 계산이라는 것을 가정하면 엄청 큰 정수를 나올 텐데요. 이때 자료형으로 표현할 수 있을지 판단해야 합니다. 결과적으로 N의 범위에서 계산되는 팩토리얼의 값을 int 또는 long 자료형에 담을 수 없습니다. 다만 BigInteger를 사용하시면 값을 담을 수 있습니다. BigInteger로 팩토리얼의 값을 계산 후 0의 수를 구하셔도 됩니다. 하지만 이번 글에서는 소인수 분해 성질을 이용해서 풀어보려고 합니다.첫 번째 방법 - 5와 2의 개수 구하기어떤 숫자 뒤에 0이 있다는 말은 10의 곱으로 이루어져 있다는 뜻일 겁니다. 320 = 32 x 1..
문제본문어떠한 수 V(i)에 대해서 몫이 a고 나머지가 r이라면 아래의 수식이 성립한다. V(i) = a(i) * m + r(i) 그리고 V(i)에서 V(i-1)을 빼면 아래와 같은 수식이 된다.V(i) - V(i-1) = (a(i) - a(i-1)) * m + (r(i) - r(i-1)) 문제에서 원하는 답은 N개의 수에 대해서 M으로 나누었을 때 나머지가 모두 동일하게 되는 M을 모두 찾는 것이다. 나머지가 모두 동일하다는 것을 위 수식에 적용해 보자. V(i) - V(i-1) = (a(i) - a(i-1)) * m + 0 r(i)와 r(i-1) 값이 같으니 나머지 부분이 0이 된다. a(i) - a(i-1)의 값을 A로 치환해서 다시 보자. V(i) - V(i-1) = A * m + 0어떤 수를 ..
코틀린에서는 object 키워드 하나로 끝나는 싱글톤 구현, 하지만 자바에서는 "어떻게 하면 더 안전하고 효율적으로 인스턴스를 하나만 유지할까?"라는 고민이 꽤 깊어집니다. 오늘은 가장 기초적인 방법부터 멀티 스레드 환경에서도 끄떡없는 고급 기법까지, 자바 싱글톤 구현의 진화 과정을 정리해 보겠습니다!가장 단순한 시작: Eager Initialization (이른 초기화)클래스가 메모리에 로드될 때 바로 인스턴스를 생성하는 방식입니다.public class A { private A instance = new A(); private A() {} public static A getInstance() { return instance; }}장점: 클래스 로딩 시점에 생성되므로 Thread..
어느 평화로운 오후, 안드로이드 개발 단톡방에 질문이 하나 올라왔습니다. "문자열이 똑같은데 왜 if문 안으로 안 들어갈까요?"라는 내용이었죠. final String text = "길찾기" if (text == textView.getText().toString()) { // 실행이 안 돼요! } 코드를 처음 보고는 "== 문법 때문이네"라며 단정 지었습니다. 흔히 자바에서 문자열 비교는 eqauls()를 써야 한다고 배웠기 때문이죠. 하지만 이후 올라오는 톡방의 다른 사람들의 답변을 듣고, 상황에 따라서 == 문법이 틀린 코드가 아니라는 사실을 알게 되었습니다. 왜 어떤 상황에서는 ==가 먹히고 어떤 상황에서는 안 되는 걸까요? 그 열쇠는 바로 String Pool(문자열 풀)에 있습니다.Java..
- Total
- Today
- Yesterday
- 백준
- build
- Coroutine
- compose
- deep link
- Test
- WebView
- github
- ViewModel
- android
- Gradle
- 2d
- Player Animator
- Unity
- google io 2025
- AOS
- 기술질문
- Animation
- View
- 안드로이드
- Top Down
- recyclerview
- Tutorial
- 유니티
- Kotlin
- git
- fragment
- Scean
- Java
- CI/CD
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
