본문 바로가기
반응형

전체 글145

[Android Kotlin] 네이버 지도 마커 대량 정보에 대한 최적의 카메라 위치 선정 (+클라이언트 처리 이유) 앞선 글에서 네이버 지도에서 마커를 찍을 때 카메라 이동에 대한 로직을 처리한 글을 보셨을겁니다. https://bendeng-life.tistory.com/153 [Android Kotlin] 안드로이드 네이버 지도SDK 사용자 경험 개선 하기 (카메라 이동, 마커찍기)네이버 지도에 마커들을 찍는 과정에 대해서 사용자 경험을 개선하기 위해 계속 발전시킨 과정에 대하여 정리하였습니다. 마커들을 찍는 과정의 발전 순서의 가장 큰 핵심은 zoom Level고정 값 →bendeng-life.tistory.com 그럼 여기서 드는 의문이 하나 왜 서버에서 로직을 처리하지 않고 클라이언트에서 처리를 할까? 라는 의문이 들으실 수 있다고 생각합니다. 우리에게는 굉장히 많은 상황이 존재합니다.편의를 위해 (예시로 내.. 2024. 1. 5.
[Android Kotlin] 안드로이드 네이버 지도SDK 사용자 경험 개선 하기 (카메라 이동, 마커찍기) 네이버 지도에 마커들을 찍는 과정에 대해서 사용자 경험을 개선하기 위해  계속 발전시킨 과정에 대하여 정리하였습니다.  마커들을 찍는 과정의 발전 순서의 가장 큰 핵심은 zoom Level고정 값 → LatLng Bounds → zoom Level 유동적인 사용순서로 생각을 해보면서 진행하였으며 사용자 경험을 고려하여 발전 시켰습니다.사용자 경험을 위한 진행 과정zoom Level 고정적 사용마커간의 평균을 계산하여 중간점으로 이동 진행현재 카메라의 위치를 기준으로 가장 가까운 곳으로 이동LatLng Bounds 사용LatLng Bounds를 측정하여 zoom 대신 camera Bounds 사용zoom Level 고정적 사용X현재 카메라를 위치를 고려하여 밀집도와 거리를 계산하여 이동최종 본1-1. 마커.. 2024. 1. 3.
[Android Kotlin] 의존성 주입 Hilt, koin 의존성 주입이란?안드로이드에서 의존성 주입은 객체 지향 프로그래밍에서 사용되는 소프트웨어 디자인 패턴 중 하나 입니다.의존성 주입은 객체가 다른 필요로 하는 객체에 대하여 직접 생성하는 것이 아닌 외부에서 주입을 받게 되는 패턴 입니다.의존성 주입은 주로 세 가지 방식으로 이루어집니다.생성자 주입: 의존성을 객체의 생성자를 통해 주입하는 방식입니다.메서드 주입의존성을 메서드의 매개변수를 통해 주입하는 방식입니다.속성 주입: 의존성을 객체의 프로퍼티나 세터 메서드를 통해 주입하는 방식입니다.의존성 주입을 통해 객체는 직접적으로 자신이 필요로 하는 의존성을 생성하지 않고 외부에서 주입받아 사용합니다.이를 통해 결합도를 낮추고, 유연하고 테스트 가능한 코드를 작성할 수 있습니다.Hilt란 무엇인가?Hilt는 .. 2024. 1. 3.
[Android kotlin] 안드로이드 Flow vs LiveData ViewModel 관리 : Flow vs LiveData LiveDataLifeCycle 인식을 통한 Observer 패턴LiveData는 안드로이드의 라이프사이클을 인식하므로 관련된 구성요소가 활성 상태일때만 데이터가 업데이트 되므로 메모리 누수나 비정상적인 UI 갱신을 방지하는데 도움이 된다데이터가 변경될 때마다 등록된 Observer에게 알림을 보내 UI갱신을 하는 패턴 사용.1. UI와 데이터 상태의 일치 보장2. 메모리 누수 없음3. 중지된 활동으로 인한 비정상 종료 없음4. 수명 주기를 더 이상 수동으로 처리하지 않음5. 최신 데이터 유지6. 적절한 구성 변경 : 기기 회전 혹은 다시 액티비티나 프래그먼트가 생성되면 최신 데이터를 받아옴 7. 리소스 공유Flow코루틴에서 Flow는 단일값을 반.. 2024. 1. 2.
[Android kotlin] 네트워크 메니저로 사용자 경험 개선하기 (Connectivity Manager) 네트워크 설정 공식 레퍼런스https://developer.android.com/training/basics/network-ops/reading-network-state?hl=ko 네트워크 상태 읽기  |  Connectivity  |  Android Developers네트워크 상태 읽기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android에서는 앱이 연결의 동적 변경사항을 학습할 수 있습니다. 다음 클래스를 사용하여developer.android.com 우리는 앱을 사용하다 보면 네트워크의 연결에 대한 알림을 주는 것을 많이 볼 수 있다. 네트워크 연결 상태를 관리하고 모니터링하여보다 사용자에게 편리함을 제공해주고자 이 부분에 대해서 공략을 해보고자 하였습니다. .. 2024. 1. 2.
[프로그래머스] 택배상자 c++ (풀이,코드) 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 코드, 풀이 아래의 주석을 보시면 바로 이해가 되실겁니다. 처음 문제에서 요구하는것과 반대로 생각을 했습니다. 4,3,1,2,5가 결국 order[i]의 값이 1,2,3,4,5순서대로 보조컨베이어벨트를 활용해서 최대 갯수를 구하는줄 알았는데 그것이 아닌 인덱스 +1 번째로 트럭에 실어야 한다는 것이었습니다. (문제 잘 읽자.) /* 1~n번 상자 / 한방향 / 보조컨베이어 -> L.. 2023. 9. 8.
[네이버 부스트캠프 웹 모바일 8기] 챌린지 수료 후기, 맴버십(본과정)합격 후기 이번 7월 중순부터 8월 초까지 4주라는 엄청나게 짧은 기간이 지나갔습니다. 한달동안 잠도 줄여가며 헬스를 포기해가며 눈을 뜨고 감을때까지 계속 챌린지 기간에 굉장히 집중을 했었던것 같습니다. 그리고 끝이 난 후 후기를 쓸까도 생각을 했지만 맴버십 과정이 떨어지던 붙던 결과가 나온 후에 적어보면서 회고를 하는 것이 좋다고 생각하여 이제야 적네요 하핳.. 혹시라도 챌린지 과정 지원이나 코딩 테스트 진행 관련 글은 아래를 참조하시면 되겠습니다😀 https://bendeng-life.tistory.com/138 네이버 부스트캠프 안드로이드 지원 합격 후기 안녕하세요 말린밴댕이 입니다. 이번에 소프트웨어 교육 프로그램(캠프)인 네이버 부스트캠프에 합격하게 되어 지원절차, 그리고 어떻게 합격하였는지에 대해서 간략.. 2023. 8. 18.
Virtual Box(ubuntu,linux 우분투/리눅스) 윈도우 다운,설치 과정 1. 윈도우 검색하기에 기능 켜기 /끄기를 검색하여 실행 후윈도우에서 가상머신(Linux)를 사용해주기 위해 두가지를 체크해준다2. 이제 재부팅을 시작한다.https://www.virtualbox.org/wiki/Downloads → 윈도우 버전을 다운로드 진행 하면 됩니다. 다 다음다음 누르면서 다운을 완료하면이런 창이 뜨면 이제 새로만들기를 클릭한다.이름과 종류는 linux 버전은 아까 다운로드 받은 ubuntu 20.04이상 버전 권장*화면에는 20.10이지만 향후에 22.04로 바꿨습니다.기본 메모리는 1024배수 MB로 해주는것이 좋다고 합니다.용량은 기본 25.00GB가 권장이긴 한데 20.00으로 설정하였습니다. (여유가 되시면 높게 설정하시는 것을 권장합니다!) 가상 메모리라 꼭 실제 메모.. 2023. 7. 16.
[프로그래머스 완주하지 못한 참가자] c++ (풀이,코드) 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 코드, 풀이 풀이 1 완주자에서 참여자를 뺀 나머지 결국 완주를 못한 사람은 제한사항을 따른 한명뿐이다. 생각을 해보니 그냥 completion에 대해서 먼저 map을 추가하고 키값이 false라면 그걸 리턴하면 되지 않을까? 근데 세번째 예시와 제한사항에 중첩이 있을 수 있다니 int로 선언하고 ++을 해준다. -> 0이라면 return해준다. #include #include #.. 2023. 7. 9.
네이버 부스트캠프 웹,모바일 8기 합격 선물(온보딩키트) 언박싱 부스트캠프 합격 결과를 확인하고 등록과정을 거치는데 합격 선물을 주소지를 입력하면 보내준다고 해서 적고 기대가 되었습니다. 6기는 간식 위주 7기는 슬리퍼를 받았다는데 오픈채팅방에서는 이번 여름에 도움이 될것 같다는 말이 있었다. 밖에 있어서 도착은 점심에 도착했지만 늦게나마 와서 확인을 하였습니다. 오 뭔가 박스도 대기업은 다르다는건가..! 무언가 굉장히 바리바리 들어있어서 굉장히 기대가 되었습니다. 부스트캠프에 대한 모티브가 적힌 종이 몇장도 들어있고 뭔가 많이 들어있는게 대기업은 대기업인가.. 라는 생각도 들었습니다😁 우산, 손풍기, 각종 스티커들과 챌린지과정을 할동안 쓸 날짜가 적힌 노트와 네이버 커넥트 노트(2권) 등등이 들어있었습니다. (42서울 입과선물이랑은 차원이 다르구만..?) 앞으로 있.. 2023. 7. 7.
[42seoul Philosopher] 42서울 philosopher과제 개념 정리 42서울에서 전에 진행했던 필로소퍼에 대한 개념 정리입니다. 조금은 공부를 했는데 혹시라도 필요하신 분이 있지 않을까 해서 도움이 되고자 공부했던 것을 올려보도록 하겠습니다 😁 2023. 7. 6.
크루스칼 알고리즘(kruskal Algorithm), 최소 신장 트리(MST) c++ 구현 우리는 흔히 알고리즘 문제를 풀다보면 적은 비용으로 연결! 하는 문제를 자주 접하게 되는데요. 자주는 보지는 않지만 가끔씩 보면 까먹기 마련입니다. 저도 까먹고 풀다가 어..? 크루스칼 알고리즘인데 하는 생각이 들어서 이번에 다시 기억하고자 포스팅을 하려합니다. 크루스칼 알고리즘 (Kruskal Algorithm) -> 최소신장트리(MST) 구하기 위해 사용 앞서 위에서 말씀 드린듯이 적은 비용으로 연결하는 것이 핵심입니다. 무방향으로 연결된 노드와 간선이 주어졌을때 우리는 간선의 가중치(비용)에 대해서 모든 노드가 연결이 되어야 하는데 가중치(비용)이 최소화 되는것을 찾을때 사용하게 되는 알고리즘입니다. 최소 신장 트리(MST)가 뭐야? 신장 부분 그래프 (Spanning tree)에서 사용된 간선들의.. 2023. 7. 6.
[프로그래머스 섬 연결하기] c++ (풀이,코드, 크루스칼 알고리즘) 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이, 코드 (크루스칼 알고리즘) 이 문제를 처음에는 어 그냥 최솟값에 대해서 연결만 하면 끝나는거 아니야? 하면서 코드를 일일히 나열했다. 근데 풀다가 생각을 해보니 이럴때 각 노드의 연결 값을 최소화!! 할때 크루스칼 알고리즘을 사용하는것이 기억이 났습니다. 크루스칼 알고리즘, 최소신장트리(MST)에 대한 그림과 함께 쉽게 설명👇👇👇 https://bendeng-life.tis.. 2023. 7. 6.
[프로그래머스 개인정보 수집기간] c++ (풀이,코드) 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 코드,풀이 이 문제는 문자열을 뽑는 문제로 귀찮은 구분자를 기준으로 뽑을 필요가 없이 달(month)나 일수가 한자리일때 앞에 0을 친절하게 붙혀주는 문제였습니다. 그래서 저는 substr를 활용하여 원하는 위치의 인덱스들의 문자열들을 뽑아와 stoi를 해주었습니다. 사실 틀은 하라는대로 하기만하고 따로 알고리즘을 엄청나게 요구하지 않아 아래의 코드를 보시게 되면 이해가 되실거라고.. 2023. 7. 5.
[프로그래머스 신고결과받기] c++ (풀이,코드) 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/92334?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 코드, 풀이 프로그래머스 level1에서 가장 정답률이 낮은 문제인데요. 카카오 문제는 문자열 처리때문에 극혐하지만 그래도 이번에 진행해봤습니다..ㅎ 저의 풀이는 이런식으로 풀었습니다. 1. 맵에 string,int로 id_list와 인덱스를 받아왔습니다. (나중에 int로 처리하기 편하게 하기 위해) 2. report를 돌게 되면서 신고자와 피신고자를 받아와.. 2023. 7. 5.
네이버 부스트캠프 안드로이드 지원 합격 후기 안녕하세요 말린밴댕이 입니다. 이번에 소프트웨어 교육 프로그램(캠프)인 네이버 부스트캠프에 합격하게 되어 지원절차, 그리고 어떻게 합격하였는지에 대해서 간략하게 소개해 드리려 합니다. 아직 생각해봐도 운이 좋아서 합격을 했다고는 생각합니다만 그래도 붙었으니 신기할 따름이네요.. 이제 학교도 이번학기에 졸업을 하고 취준과 스펙준비에 가름길에 서있었을때 때마침 눈에 들어온 네이버부스트캠프가 눈에 띄어 합격하면 스펙준비를 하고 떨어지면 취준을 하자는 마인드로 임했습니다. 그럼 서론은 그만하고 네이버부스트캠프 소개, 서류접수, 코딩테스트, 지원절차에 대해 소개해보도록 하겠습니다. 네이버 부스트캠프란?네이버 부스트캠프는 소프트웨어 개발 역량을 키우고자 하는 청년들을 대상으로 교육 프로그램을 제공하는 기관입니다. .. 2023. 7. 4.
[프로그래머스 가장 먼 노드] c++ (풀이,코드, bfs) 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이, 코드(bfs) 효율성을 요구하는 문제가 없어서 조금은 당황했습니다. 오지 정확성을 확인하고 처음에 통과를 했는데 이게 내 풀이가 맞나...? 하는 생각이 들어 다른 풀이를 복붙하여 확인을 해본결과 메모리와 시간이 어느정도 비슷한것을 확인했습니다. 저는 이 문제를 BFS(너비탐색)로 풀었습니다. 우선 arr이 노드의 갯수가 굉장히 많아 배열로 선언하면 테스트예제 7,8에서 터.. 2023. 7. 4.
[프로그래머스 크레인 인형뽑기 게임] c++ (풀이,코드,스택) 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자.. 2023. 7. 4.
[프로그래머스 키패드 누르기] c++ (풀이, 코드) 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 코드, 풀이 처음에 풀이를 가로^2 + 세로^2을 거리로 생각을 해서 (문제를 제대로 읽어야지 바보야..) 처음에 틀렸었습니다. 문제는 10분 정도 내외의 시간이 걸렸습니다. 좌표값이라고 생각을 하고 0,0기준으로 y,x좌표를 추출하였습니다. y = (numbers[i] - 1) / 3; x = (numbers[i] - 1) % 3; 1,4,7의 경우에는 왼쪽에 대한 map을 갱신.. 2023. 7. 4.
[프로그래머스 징검다리 건너기] c++ (풀이,코드,이분탐색) 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이, 코드(이진탐색) 이 문제는 풀때 어떤 알고리즘이다! 라는 생각이 아니고 처음 풀때는 아주 뇌를 비우고 풀었었습니다.. 경우의 수도 생각없이 그냥 뭐 일단 가장 적은값에 대해서 다 빼버리고 그다음에 탐색을 순차접근을 하면 되지 않을까 하는 생각으로 뇌를 비우고 아래의 코드처럼 짰었습니다. 틀린 이상한 코드 #include #include #include #include usin.. 2023. 7. 3.
[SQLD 시험 일주일 합격 후기] 공부방법(방식), 팁 안녕하세요! 6월 30일에 SQLD와 리눅스 마스터 두개를 동시에 합격 하여 (동일 날 오전 오후 시험..) 합격 결과가 나와 기분 좋은 마음에 SQLD를 어떻게 공부하였는지에 대해서 적어보고자 합니다. 이번에 SQLD와 리눅스마스터 2급을 동시에 약 일주일정도를 두개를 준비하여 치루느라 굉장히 정신없는 시험 준비가 되었었느데요. 이번에 합격한김에 제가 어떤방식으로 공부를 하였는지 어떻게 합격하였는지에 대해서 팁과 공부방식과 굉장히 효율적으로 공부한 것에 대해서 말씀드려보겠습니다. SQLD 시험이란? - 응시료, 합격기준, 출제 기준 SQLD 공부 방식 - 팁, 공부 방식, 공부한 PDF 공유, 책 추천 SQLD 합격 후기 1. SQLD시험이란? -정의 SQL의 정의 SQL(Structured Query.. 2023. 7. 3.
반응형