전체 글
-
[BOJ - Java] 19236번 청소년 상어개발/알고리즘 2021. 8. 7. 21:05
문제 19236번 - 청소년 상어 : https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 정답 및 풀이 import java.io.*; import java.util.*; public class Main { private static class Shark { int dir, sum, x, y; Shark(int dir, int sum, int x, int y) { this.dir = dir; this.sum = sum; this...
-
GOOD BYE👋, 나에겐 너무나 소중했던 2020회고 2021. 1. 6. 00:34
2020년은 나에게 어마무시한 변화가 찾아왔던 해이다. 회고에 어떤걸 작성해야하나 고민하면서 끄적끄적 적어본 키워드만 10개가 넘었다. 그만큼 지난 해는 너무나 다사다난했고 나에게는 성장통이자 선물같은 한 해 였다. # 2020, 난 이제 어떻게 해야하죠? 🤷♀️ 2019년 고등학교를 졸업하고 곧바로 회사에 출근했다. 학교에서 교과서만 보고 공부하던 것과 회사에서 근무하는 것은 달랐다. 막연히 '회사가서 배우면 되겠지'라는 생각으로 실무에 뛰어들었으나 설상가상으로 개발직무는 거의 맡지 못했다. 그 해 하반기가 되니 내 스스로 기술 부재에 대해 깨닫게 되었다. 어쨌든 나는 2년차 개발자가 되어가고 있었다. 기술 부재를 느낀 이후부터 세미나도 다니고 주말이나 퇴근 후에 스스로 개발 공부를 했었지만 사실 고..
-
공식 가이드 문서로 Coroutine 공부하기 - [04. Coroutine Context and Dispatchers]개발/Kotlin 2020. 12. 2. 10:57
[ 04. 코루틴 컨텍스트 및 디스패처 ] 코루틴은 항상 Kotlin 표준 라이브러리에 정의된 CoroutineContext 타입의 값을 대표하는 일부 context 내에서 실행됩니다. Coroutine context는 다양한 요소의 집합입니다. 주요 요소는 이전에 보았던 코루틴의 Job, 이번 섹션에서 다루는 dispatcher입니다. # 디스패처와 스레드 Coroutine context에는 해당 코루틴이 실행을 위해 사용하는 스레드를 결정하는 coroutine dispatcher(CoroutineDispatcher 참조)를 참조합니다. coroutine dispatcher는 코루틴 실행을 특정 스레드에 제한하거나 스레드 풀로 디스패치하거나 제한없이 실행되도록 할 수 있습니다. launch 및 asyn..
-
공식 가이드 문서로 Coroutine 공부하기 - [03. Composing Suspending Functions]개발/Kotlin 2020. 11. 7. 04:23
[ 03. 일시중지 함수 구성 ] 일시중지 함수(suspending function)의 구성에 대한 다양한 접근방법을 다룹니다. # 기본적으로 순차적입니다 다른 곳에 정의 된 두 개의 Suspending function이 원격 서비스 호출 또는 계산과 같은 유용한 작업을 수행한다고 가정합니다. 이들은 유용한 척 할 뿐이지, 실제로 각각의 코드는 해당 예제를 위해 단지 1초간 지연될 뿐입니다. - code [전체코드 확인하기] : suspend fun doSomethingUsefulOne(): Int { delay(1000L) // 여기에서 어떤 유용한 일을 하고 있는 것처럼 동작합니다 return 13 } suspend fun doSomethingUsefulTwo(): Int { delay(1000L) ..
-
공식 가이드 문서로 Coroutine 공부하기 - [02. Cancellation and Timeouts]개발/Kotlin 2020. 11. 6. 06:57
[ 02. 취소 및 시간 초과 ] 해당 섹션에서는 코루틴 취소 및 시간 초과에 대해 설명합니다. # 코루틴 실행 취소하기 장시간 구동되는 애플리케이션에서는 백그라운드 코루틴에 대한 세밀한 제어가 필요할 수 있습니다. 예를 들어, 사용자가 코루틴을 시작시킨 페이지를 닫았을 수 있으며 이제 그 결과를 필요로 하지 않고 해당 작업을 취소할 수 있습니다. launch함수는 실행 중인 코루틴을 취소시키는 데 사용할 수 있는 Job을 리턴시킵니다. - code [전체코드 확인하기] : val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // 약간 delay println("main:..
-
공식 가이드 문서로 Coroutine 공부하기 - [01. Coroutine Basics]개발/Kotlin 2020. 11. 4. 06:28
[ 01. 코루틴 기본 사항 ] 코루틴 기본 개념을 다룹니다. # 첫번째 코루틴 - code [전체코드 확인하기] : import kotlinx.coroutines.* fun main() { GlobalScope.launch { // 새로운 코루틴을 백그라운드에서 실행 및 진행 delay(1000L) // 1초간 non-blocking 지연 (기본 시간 단위는 밀리세컨드) println("World!") // delay 후, 출력 } println("Hello,") // 코루틴이 지연(delay)되는 동안 메인스레드는 계속하여 진행 Thread.sleep(2000L) // JVM 유지를 위해 2초간 메인 스레드 차단(block) } - result : Hello, World! 기본적으로 코루틴은 경량(l..
-
공식 가이드 문서로 Coroutine 공부하기 - [00. Coroutine Guide]개발/Kotlin 2020. 11. 3. 06:17
[ 00. 코루틴 가이드 ] Kotlin은 언어로서의 표준 라이브러리에서 최소한의 low-level API만 제공하여 다양한 다른 라이브러리가 Coroutine을 활용할 수 있도록 합니다. 유사한 기능을 가진 다른 언어들과 달리, async 와 await 는 Kotlin의 키워드가 아니며 표준 라이브러리의 일부 역시 아닙니다. 또한, Kotlin의 suspending function 개념은 미래나 약속보다 비동기 작업에 대해 더 안전하고 오류 발생 가능성이 비교적 적은 추상화를 제공합니다. kotlinx.coroutines 는 JetBrains에서 개발된 Coroutine을 위한 풍요한 라이브러리 입니다. 여기에는 launch, async 및 기타를 포함한 여러 high-level 코루틴 지원 기본요소들..
-
Window OS에서 Git Secret 사용하기 3개발 2020. 6. 9. 19:22
파일 복호화 하기 git-secret을 적용했던 reposity를 클론해보겠습니다. 왼쪽이미지의 디렉토리는 파일에 git-secret을 적용시킨 후 commit/push했던 local repository입니다. 오른쪽 이미지의 디렉토리는 remote repository로부터 git-secret을 적용시킨 파일을 clone한 local repository입니다. 왼쪽 디렉토리에는 기존파일/암호화시킨파일이 모두 존재하나, 오른쪽 디렉토리에는 당연히 암호화된 파일만 존재합니다. 따라서 test.txt 파일을 확인하기 위해서는 복호화 과정이 필요합니다. 복호화 과정은 간단합니다. 우선 클론된 Local Repository로 이동합니다. $ cd /mnt/c/Yujin/cloneGitSecret 다음 명령어를 입..