전체 글

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

[우테코] Enum class

📌Intro 우테코 프리코스 3주차 미션 요구사항 중 Enum class를 적용하여 프로그래밍을 구현하라는 요구 사항이 있었다. Enum class는 학교 수업에서 잠시 다루면서 흘려 들었던 기억만 있을 뿐 어떤 역할을 하고 언제 사용하면 좋은지 아예 개념이 잡혀있지 않았다. 그래서 이번 기회에 다뤄보며 이해하고 정리하려고 한다. 📌Enum class? Enum class는 상태 등 유사한 값들을 상수값으로 만들어 사용하고 유지하기 위해 사용한다. Enum class를 사용하면 상수를 집합으로 관리할 수 있어 코드의 가독성이 높아진다. 이름에서도 알 수 있듯이 클래스이기 때문에 프로퍼티와 메소드를 포함할 수 있고, 상수 목록과 메소드 정의 사이에 세미콜론을 사용하여 구분해줘야 한다. enum class ..

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

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

📌 Intro 우테코 프리코스 3주차가 지나갔다. 그간 프리코스를 진행하면서 항상 시간에 쫓겼었는데 이번에야말로 시간적으로 여유를 두고 진행을 해보자는 생각이었지만 역시나 해야할 일이 많았다..(보고서 작성, 가족 여행, TA채점 등...ㅠㅠ) 그래서인지 이번주는 부족한 점도 굉장히 많았고, 나중에야 알았지만 소감문도 작성하지 못한 상태로 제출되었다. 이게 어떻게 반영될지는 모르겠지만 아직 4주차가 남았고 지나간건 잊고 해야할 일에 집중해보려 한다. 📌 추가된 요구 사항 3주차 미션에서는 2주차에서 학습한 것에 목표 2가지가 추가되었다. 1. 클래스 (객체)를 분리하는 연습 2. 도메인 로직에 대한 단위 테스트를 작성하는 연습 또 추가된 프로그래밍 요구사항을 살펴보면 2주차와는 다르게 더 많아졌고 굉장히..

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

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

📌 Intro 우테코 프리코스 2주차가 끝났다. 왜 또 나는 바빴던 것일까.... 아쉽다. 그래도 그 안에서도 열심히 임했으니 후회는 없다. 📌 2주차 내용 이번 2주차에서 진행했던 미션은 숫자 야구 게임이다. 숫자 야구 게임은 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다. 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리하는 조건을 가지고 있다. 📌 추가된 요구 사항 2주차의 목표는 함수를 분리하고, 각 함수별로 테스트를 작성하는 것에 익숙해지는 것이다. 그리고 추가된 요구사항도 있는데 이전까지 고민하지 않았던 부분들에 대한 내용들이 많아 지키는데 쉽지 ..

(구)Android/Kotlin

[Kotlin] Retrofit POST

📌 Intro 이전 글에서는 RESTAPI와 Retrofit의 GET방식을 사용하는 방법에 대해 정리했다. 프로젝트를 진행하면서 POST방식도 사용해야 했기 때문에 이해를 위해 정리해두려고 한다. 앞으로의 내용은아래글을 읽었다는 가정하에 동일한 부분은 설명없이 진행할 것이다. [Android] REST API & Retrofit 📌 Intro Retrofit은 서버와 통신할 때 사용하는 라이브러리이다. RestAPI는 무엇이고, Retrofit을 사용하기 위해서는 어떻게 해야하는지 알아보도록 하자. 📌 Rest? REST 정의 REST는 Representational State Transf krrong.tistory.com 📌 POST 사용 POST 방식은 @FormUrlEncoded 어노테이션을 사용하..

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

Krrong
노는게 제일 좋아