분류 전체보기

Git

[Git] Git 커밋 메시지 컨벤션

📌 Intro 우테코를 시작하면서 혼자 개발했을 때는 고려하지 않았던 부분들을 상당히 많이 고려하게 되었다. 그 중 하나가 Git 커밋 메시지다. 다른 분들의 커밋 메시지를 보면 구조가 정해져있으며 가독성이 좋은 것을 볼 수 있었다. 일단 슬랙에서 공유해주신 udacity commit convention을 따라가보려고 한다. 📌 Commit Message Structure 커밋 메시지는 세개의 다른 구조로 이루어져있고 공백으로 이루어진 행으로 구분된다. 전체적인 구조는 다음과 같다. type : Subject body(optional) footer(optional) type : 어떤 의도로 커밋했는지를 type에 작성한다. type의 종류는 아래서 설명할 것이다. subject : 최대 50글자가 넘지 ..

우아한테크코스/프리코스

[우테코] 프리코스 1주차 회고

📌 Intro 우테코 프리코스에 지원했었다. 4기까지는 백엔트, 프론트엔드만 코스가 있었는데 이번 5기부터는 모바일 안드로이드가 추가되었다. 이것저것 프로젝트도 만들어봤고 학부연구생도 1년넘게 진행하고 있지만 가장 큰 문제는 내가 무엇을 하고 싶은지 잘 모르겠다는 것이다. 그래서 이번 프리코스에 지원할 때도 어느 분야로 지원해야 할 지 고민을 많이했다. 백엔드는 해본 적이 없고, 프론트엔드도 리액트, 노드js같은 프레임워크를 사용해본 적이 없기 때문에 그나마 무엇인가를 만들어봤던 모바일 안드로이드 분야로 지원했다. 어쩌다가 안드로이드에 빠지게 되었는지는 기억도 나질 않지만.. 흥미가 있는것만은 확실하다. 각설하고 우테코에 끝까지 참여할 수 있으면 좋겠지만 프리코스를 거치면서도 얻을 수 있는 것이 많다고 ..

(구)Android/Kotlin

[Kotlin] Fragment에서 권한 요청하기

📌 Intro 전해들은 바로 요즘은 Activity를 여닫으면서 작업하는 것보다 하나의 Activity에서 Fragment를 이용한다고 한다. 그래서 작성하던 코드를 Fragment로 옮기는 과정에서 Activity에서는 잘 동작하던 requestPermissions() 메서드가 Fragment로 옮기니 deprecated 되었다고 한다. 📌 Fragment에서 권한 요청하기 Activity Result를 받아오는 API가 변경되면서 Fragment.requestPermissions도 deprecated 되었다고 한다. 그래서 registerForActivityResult를 호출하고 ActivityResultContracts.RequestPermission을 인자로 전달해야 한다. 공식 문서에 따르면 다..

C++ Programming/알고리즘

[알고리즘] 크루스칼(Kruskal) 알고리즘

📌 Intro 크루스칼 알고리즘은 그래프에서 모든 정점들을 가장 적은 비용으로 연결하는 방법을 찾는 알고리즘이다. 다르게 말하면 최소 신장 트리를 찾는 알고리즘이다. 신장트리는 그래프가 있을 때 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프를 말하고, 최소 신장트리는 이러한 신장 트리들 중 비용이 가장 적은 신장 트리를 말한다. 📌 크루스칼 알고리즘 앞에서 말한 것처럼 크루스칼 알고리즘을 사용하면 그래프 내에서 가장 적은 비용으로 모든 노드를 연결하는 방법을 찾을 수 있다. 크루스칼 알고리즘은 모든 간선에 대해 정렬을 수행한 뒤 가장 거리가 짧은 간선부터 집합에 포함시키면서 진행을 하기 때문에 그리디 알고리즘으로 분류된다. 구체적인 알고리즘은 다음과 같다. 간선 데이터를 비용에 따라 오름차순..

(구)Android/Kotlin

[Kotlin] REST API & Retrofit

📌 Intro Retrofit은 서버와 통신할 때 사용하는 라이브러리이다. RestAPI는 무엇이고, Retrofit을 사용하기 위해서는 어떻게 해야하는지 알아보도록 하자. 📌 Rest? REST 정의 REST는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든것을 의미한다. 즉, 자원의 표현에 의한 상태 전달을 뜻한다. 자원 : 해당 소프트웨어가 관리하는 모든 것(문서, 그림, 데이터...) 표현 : 자원을 표현하기 위한 이름 (DB의 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함) 상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달한다. (JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적..

(구)Android/Kotlin

[Kotlin] 런타임 권한 요청(Permission)

📌 Intro android 6.0 마시멜로부터 런타임 권한 처리가 추가되었다. 예를 들어서 카메라와 갤러리를 호출하기 위해서는 접근 권한이 필요한데, 6.0 이전까지는 AndroidManifest에 사용할 permission만 추가하면 되었지만 이제는 앱 사용 중 실제로 접근하는 시점에 권한을 허용했는지 체크하여 처리를 해야한다. 이 방법에 대해 알아보도록 하자. 📌 AndroidManifest.xml 에 퍼미션 추가 가장 먼저 AndroidManifest.xml 파일에 퍼미션을 추가해줘야 한다. 📌 권한 요청 private val CAMERA_REQUESTCODE : Int = 100 // 카메라 권한 확인코드 private val permissions = arrayOf(Manifest.permiss..

(구)Android/Kotlin

[Kotlin] 뷰바인딩(ViewBinding 이해하기

📌 Intro 이번에 소개할 뷰 바인딩(view binding)은 안드로이드 아키텍처 구성요소로서 앱 모듈별로 설정하여 사용할 수 있는 기능이다. 뷰 바인딩 기능을 사용하면 뷰를 제어하는 코드를 쉽게 작성할 수 있다. (항상 그렇지만 익숙해지는데까지가 제일 어려운 것 같다.) 📌 View Binding 뷰 바인딩을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있는데, 모듈에서 사용 설정된 뷰 바인딩은 각 레이아웃 XML파일과 바인딩 클래스를 생성한다. 이 바인딩 클래스에는 레이아웃 XML파일에서 ID가 있는 모든 뷰를 참조하는 참조변수가 포함된다. 때문에 findViewById()를 사용하지 않고도 뷰를 다룰 수 있게된다. 앞서 말했던 것처럼 바인딩 클래스는 자동으로 생성되기 때문에 만들어지는 이름..

C++ Programming/알고리즘

[알고리즘] 0-1 BFS

📌 Intro 0-1 BFS란 가중치가 0과 1로만 주어진 그래프에서 최단 경로를 찾는 알고리즘인데, 이에 대해 자세하게 알아보도록 하자. 📌 0-1 BFS 보통 최단 경로를 이야기할 때는 다익스트라 알고리즘이 가장 빠르게 동작한다고 알고 있을 것이다. 하지만 가중치가 0과 1로만 주어진 그래프에서는 다익스트라 알고리즘보다 0-1 BFS가 더빠르게 동작한다. 다익스트라 알고리즘의 시간 복잡도는 O(ElogV)이지만 0-1 BFS는 O(V+E)의 시간 복잡도를 가지기 때문이다. 먼저 0-1 BFS의 동작 원리를 살펴보면 다음과 같다. deque front에서 현재 노드를 꺼낸다. 인접 노드를 체크한다. 현재 노드까지의 비용 + 인접 노드로의 비용 < 인접 노드까지 소요된 비용 의 경우 인접 노드로의 비용을..

Krrong
'분류 전체보기' 카테고리의 글 목록 (11 Page)