경험의 기록

반응형

최신글 리스트 커버

2년간의 기술 블로그 운영 회고록과 견해

2020년 8월 4일부터 2022년 말까지 약 2년간 기술 블로그를 운영했다. 사실 운영했다고 하기엔 많이 부족해서, 그냥 블로그를 했다고 표현해야 할 것 같다. 바빴던 2022년도를 보내고 새해를 맞이해, 블로그를 하면서 지금까지 느낀 점들을 두서없이 정리해보려고 한다. 1️⃣ 2020년, 블로그를 시작하면서 2020.08.04 - [Android/기본] - [Android] 안드로이드 스튜디오 Auto Import 설정 [Android] 안드로이드 스튜디오 Auto Import 설정 자바에서는 어떠한 클래스를 사용하려고 할 때, import 구문을 추가해야 한다. 안드로이드 스튜디오에서는 코드가 입력되었을 때, import구문을 자동으로 추가해주는 기능을 제공한다. File > Settings han..
블로그 운영
2023.03.02

[알고리즘] 정렬 (Sort) - 거품, 선택, 삽입, 퀵, 병합 정렬 정리 (Java)

정렬의 방법은 여러 가지가 있다. 그중 대표적인 정렬인 거품, 선택, 삽입, 퀵, 병합 정렬을 자바로 구현해보고 시간복잡도와 장단점을 가볍게 정리해보려고 한다. 1️⃣ 거품 정렬 (Bubble Sort) 인접한 두 원소의 대소를 비교, 조건에 따라 (오름차순 or 내림차순) 교환하여 가장 뒤로 하나씩 보내는 방식 static void bubbleSort(int[] arr){ int size = arr.length; for(int i = size; i > 0; i--){ for(int j = 1; j arr[j]) { int tmp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = tmp; } } } } 시간 복잡도..
기본
2022.12.02

[알고리즘] 정렬된 범위 내 특정 값 빠르게 찾기 - 이분 탐색 알고리즘 (백준 1654 - Java)

정렬된 범위 내에서 어떠한 값을 찾아야 할 때 이분 탐색 알고리즘을 이용하면 좀 더 빠른 속도로 찾을 수 있다. 위와 같이 오름차순으로 정렬된 숫자 배열에서 7을 찾아야 할 경우 배열 전체를 탐색하는 방법이 아닌 시작점과 끝점을 범위 내 양 끝으로 정의 시작점과 끝점을 더한 값을 2로 나눈 위치(중앙) 값과 찾는 값 비교 중앙값이 찾는 값보다 크다면 끝점을 중앙값의 이전값으로 초기화, 작다면 시작점을 중앙값의 다음값으로 초기화 2 ~ 3 반복, 시작점이 끝점 이상이 될 경우 종료 의 방법으로 해결할 수 있다. 위 그림에서 위와 같은 이분탐색을 활용할 경우 14, 6, 8, 7 총 4번의 탐색만으로 7을 찾을 수 있다. 이런 유형의 문제에서 범위의 기준을 어떻게 잡을지를 판별하는 것이 중요한데 대부분의 경..
기본
2022.11.30

[11월 회고록] 마지막 프로젝트의 마무리, 수료를 향해

안녕하세요 😀 안드로이드 앱 개발을 공부하고 있는 한상엽입니다. 마지막 프로젝트인 자율 프로젝트를 마무리하고 싸피의 마지막을 바라보며 느낀 점들을 정리해보려고 합니다! 1️⃣ 프로젝트 끝, 새로운 시작 11월에는 싸피의 마지막 프로젝트, 자율 프로젝트가 종료되었습니다. 저는 Android의 Compose를 공부하고 실제로 프로젝트까지 진행하면서 위와 같은 서비스를 제작했습니다. 그 후 발표까지 종료되고 하반기부터는 지금까지의 싸피 생활을 정리하고 부족한 부분을 공부할 수 있는 시간을 가질 수 있었는데요. 자율적으로 공부할 수 있는 시간이 생긴만큼, 목표 설정이 매우 중요하다고 느꼈습니다. 저는 코딩 테스트를 준비하며 알고리즘 문제를 계속 풀고, 싸피 활동을 기록으로 정리하고 하반기 채용 과정을 마무리하는..
SSAFYcial
2022.11.29

[SSAFYcial] SSAFY 마무리와 신년 계획하기

안녕하세요 😀 안드로이드 앱 개발을 공부하고 있는 한상엽입니다. 벌써 싸피의 모든 프로젝트가 종료되고 마지막 수료를 앞두고 있는데요. 수료 전 성공적인 마무리를 위해 하면 좋을 일들과 수료 후 내년에 하면 좋을 일들을 추천해드리려고 합니다! 1️⃣ 코딩 테스트 준비 대부분의 기업에서 1차 테스트를 통과하기 위해서는 코딩 테스트를 필수로 준비해야 하는데요. 기본적인 알고리즘 개념을 잡은 후 백준, 프로그래머스 등의 사이트에서 문제를 풀며 준비하는 것을 추천드립니다. 백준 (Solved) https://solved.ac/class 백준의 solved에서 Class, 랭킹, 레벨 등 다양한 기능을 활용해 좀 더 알고리즘 공부를 재미있게 할 수 있습니다. 프로그래머스 (고득점 킷) https://school.p..
SSAFYcial
2022.11.29

[9월 회고록] 분위기에 휩쓸리지 말자!

안녕하세요 😀 안드로이드 앱 개발을 공부하고 있는 한상엽입니다. 공통 프로젝트가 종료되고, 특화 프로젝트를 진행하며 느낀 점을 정리해보고자 합니다! 1️⃣ 우선순위를 잘 정하자 9월에는 공통프로젝트를 마무리하고 특화 프로젝트가 빠르게 시작됩니다. 특화 프로젝트는 다양한 도메인을 주제로 진행되기 때문에 그 도메인에 대한 학습도 해야합니다. 또한 하반기 채용 시즌이 시작되고, 그로 인해서 원서 작성이나 코딩 테스트 준비, 면접 준비 등 해야 할 일이 굉장히 많아집니다. 그래서 혼란스럽지 않도록 오후 6시 이후의 시간을 프로젝트에 좀 더 전념할지, 부족한 부분에 대한 공부를 더 할지, 원서를 쓸지 등 다양한 목표 중에 혼란스럽지 않도록 우선순위를 잘 정해야 한다고 느꼈습니다! 2️⃣ 분위기에 휩쓸리지 말자 저..
SSAFYcial
2022.11.25

[SSAFYcial] 인텔리제이 유용한 플러그인 알아보기

안녕하세요 😀 안드로이드 앱 개발을 공부하고 있는 한상엽입니다. 자바, 코틀린을 활용한 프로젝트를 진행하면서 인텔리제이를 많이 사용해보셨을 거 같은데요. 인텔리제이 사용 시 유용한 플러그인들을 몇 가지 소개드리려고 합니다! 1️⃣ JSON To Kotlin Class JSON TO Kotlin Class는 JSON 형태의 문자를 입력하면 Data Class로 쉽게 바꿔주는 플러그인입니다. 우클릭 -> New -> Kotlin data class File from JSON 위처럼 JSON 형태의 파일을 입력하고 Class Name에 원하는 이름을 입력해주면 위처럼 Class로 변환해줍니다. 파싱을 진행하다 보면 깊이가 깊어 복잡한 JSON 파일들이 많은데, 그런 JSON파일을 변환할 때 활용하면 좋습니다!..
SSAFYcial
2022.11.25

[알고리즘] 코틀린 순열, 중복순열, 조합, 중복조합 재귀로 구현하기

2022.02.14 - [알고리즘, 자료구조/기본] - [알고리즘] 자바 순열, 중복순열, 조합, 중복조합 재귀로 구현하기 [알고리즘] 자바 순열, 중복순열, 조합, 중복조합 재귀로 구현하기 1️⃣ 순열 서로 다른 n개중에 r개를 선택하는 경우의 수 순서 O 경우의 수 : n! / (n-r)! // 순열 public static void permutation(ArrayList list, int count) { // 다 뽑았을 때 if (count == 0) { System.out.println(list); perCount+ hanyeop.tistory.com 위 글에서는 list를 활용하여 순열, 조합을 구했다. 하지만 결과 배열을 따로 선언해놓고 그 값만 바꿔준다면 더 효율적으로 계산할 수 있다. 순열..
기본
2022.11.22

[알고리즘] 모든 정점 사이 최단경로 구하기 - 플로이드 알고리즘 (백준 11404 - Java)

플로이드 알고리즘 가중치가 주어진 그래프에서 모든 정점 사이의 최단경로를 구할 때 사이클이 존재하지 않고, 가중치가 음이거나 양인 경우 플로이드 알고리즘을 사용할 수 있다. 경유지 k와 두 점 i,j 선택 두점 사이 이동 시 i -> j 보다 k를 경유해서 가는 것이 더 빠르다면 최솟값 갱신 모든 경우에 대해 반복 모든 경유지에 대한 정점 사이의 최단 경로를 전부 확인하므로 O(V^3) (V는 정점) 의 시간복잡도를 갖는다. 예제 코드 (백준 11404) https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는..
기본
2022.11.19

[Android] WorkManager에서 Dagger Hilt 사용하여 의존성 주입하기

2022.11.19 - [Android/AAC, MVVM] - [Android] 안드로이드 WorkManager 활용한 주기적 백그라운드 작업 [Android] 안드로이드 WorkManager 활용한 주기적 백그라운드 작업 https://developer.android.com/topic/libraries/architecture/workmanager?hl=ko 앱 아키텍처: 데이터 영역 - WorkManager로 작업 예약 - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이 hanyeop.tistory.com WorkManager를 사용하면 백그라운드 작업을 효율적으로 처리할 수 있다. 이번 글에서는 Dagger Hilt를 사용해 의존성 주입하..
AAC, MVVM
2022.11.19
반응형
loading