분류 전체보기
-
Kotlin의 Null 처리Kotlin 2021. 5. 17. 00:55
개요 Kotlin의 가장 큰 장점 중 하나는 Null 처리를 비교적 안전하고, 간결하게 할 수 있다는 것인데요. Null이 반드시 필요한 상황도 있겠지만, 함수에서 불필요하게 Null을 return 한다거나, 특정 데이터를 사용할 때 Null이 들어있으면 Runtime에서 NPE (Null Pointer Exception)이 발생할 수 있습니다. 이러한 문제는 프로그램이 거대해질수록 더 도드라지는 현상인데요. 많은 개발자들이 Null 처리에서 굉장히 신경을 씁니다. Kotlin은 이러한 Null 처리를 더 편하고 안전하게 하기 위해서 여러 장치들을 뒀는데, 오늘은 그 중 대표적인 몇가지에 대해서 알아보겠습니다. Nullable type과 non-null type Kotlin을 사용하다보면 아래와 같은 타..
-
File Encryption, Decryption 구현보안 2021. 5. 17. 00:10
개요 파일 암호화에는 여러가지 방법이 있습니다. 그 중 고급 암호화 표준인 AES를 사용한 파일 암호화를 자바로 구현해보려고 합니다. 구현에 앞서서 대칭 키 암호와 블록 암호에 대해서 학습 후 진행했습니다. AES와 블록 암호 암호화 알고리즘에서 가장 널리 쓰이는 알고리즘 중 하나는 대칭 키 암호입니다. 대칭 키 암호화는 암호화(Encryption)와 복호화(Decryption)에 같은 키를 사용하는 알고리즘입니다. 특히, 공개 키 암호와 대비해서 성능이 뛰어나다는 장점이 있습니다. 대칭 키 암호는 암호화하는 단위에 따라 스트림 암호와 블록 암호로 구분됩니다. 스트림 암호는 평문을 비트/바이트로 계속 입력 받아서 암호화하는 방식이고, 블록 암호는 평문을 정해진 크기의 블록 단위로 나눠 이에 대응하는 암호..
-
데이비슨 대학 이현중 인터뷰일상, 생활 기록 2021. 5. 7. 19:38
평소 정말 좋아하는 선수인데 인터뷰를 보고 감명받아 링크를 남겨놓습니다. 도전과 성장에 대해서 다시 한번 돌아보게 되는 것 같습니다. sports.news.naver.com/news.nhn?oid=529&aid=0000055390 이현중 “NBA는 ‘다재다능’ 설린저보다 ‘특급 슈터’ 로빈슨을 선호한다” [엠스플 인터뷰] -NCAA 남자농구 디비전1 2학년 시즌 마친 이현중, 스테판 커리 모교 데이비슨 대학교 에이스로 우뚝 -“달콤한 칭찬보다 쓴소리해 주는 사람 있어야 발전할 수 있다” -“180클럽 가입이 NBA 진출 보 sports.news.naver.com
-
경쾌한 마음을 가져라일상, 생활 기록 2021. 5. 6. 01:33
삼호 미디어의 '니체의 말' 일부 인용했습니다. 창조적인 일을 할 때는 물론, 일상적인 일을 하는 경우에도 경쾌한 마음으로 임하면 순조롭게 잘 진행된다. 그것은 거침없이 비상하는 마음, 사소한 제한 따윈 염두에 두지 않는 자유로운 마음이 있기 때문이다. 천생 타고난 이 마음을 위축시키지 않고 지켜나감이 좋다. 그것으로 여러가지 일을 거뜬히 이룰 수 있는 사람이 될 수 있다. 그러나 본인 스스로가 경쾌한 마음을 가지고 있지 않다고 느낀다면 되도록 많은 지식과 만나고 많은 예술과 접하라. 그러면 그 마음에 서서히 경쾌함이 채워질 것이다.
-
Android WorkManager 사용법Android 2021. 5. 4. 17:53
개요 안드로이드의 프로세스는 Foreground와 Background로 나뉩니다. Foreground는 유저가 앱과 화면에서 인터랙션을 할 수 있는 상태입니다. Background는 유저가 앱과 화면에서 인터랙션 하지않아도 실행되는 상태입니다. 앱을 종료하는 방식은 두가지 입니다. 뒤로가기 해서 종료하거나, 모두 보기에서 앱을 날리는 두가지 경우입니다. 여기서 뒤로가기를 해서 앱을 종료하는 경우는 프로세스를 완전히 종료하는 것이 아니라 Background로 남기는 것입니다. 반면 모두 보기를 해서 종료하면 프로세스 자체가 종료가 되는 것이죠. 다운로드를 하거나 음악을 실행시키는 것과 같이, 앱은 다양한 이유로 Background에서 Task를 실행합니다. 안드로이드에서는 이러한 Background Tas..
-
백준 14891번, 톱니바퀴Problem Solving 2021. 5. 1. 01:37
문제 링크 : www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 풀이 각각 톱니가 8개가 있는 톱니바퀴 4개가 주어진다. 이를 회전시킬 때, 톱니가 어떻게 변하는지 계산하는 문제. 톱니를 회전하면 어떻게 데이터를 변경시킬지 고민해야하고, 한 톱니 바퀴를 회전시켰을 때, 맞닿는 톱니와 이에 대한 결과를 생각해야한다. 특히, 맞닿는 조건과 연쇄적으로 회전하는 부분에 대한 구현이 중요했다. 각각의 톱니가 회전하는 것은 동일하고, 톱니에 대한 데이터를 저장해야하..
-
소개about Me 2021. 4. 30. 22:23
정보 최창익 숭실대학교 글로벌미디어학부 18학번 네이버 웹툰 / Android Developer / 인턴 (2021.01 ~ 2021.02) 위플래닛 / Android Developer / 인턴 (2020.09 ~ 2020.12) 숭실대학교 IT 동아리 유어슈 안드로이드 개발자 YAPP 16기 안드로이드 개발자 디프만 8기 안드로이드 개발자 해병 부사관 (2013 ~ 2017) 활동 숭실대학교 IT대학 소프트웨어 공모전 / 안드로이드 앱 출품 / 금상 2020 Yourssu Connect Day / 객체지향적 설계와 아키텍처 강연 관심사 운동 농구 바이크 코딩 테스트 링크 github.com/ckddlr0610
-
Abstract Class와 Interface의 차이Java 2021. 4. 13. 18:53
개요 Java에서 상속을 받기 위해서는 두 가지 방법이 있는데요, 하나는 Abstract Class, 또 다른 하나는 Interface입니다. 하지만, 이 둘의 차이를 명확히 구분하기가 어렵다고 생각합니다. 예전부터 이 둘의 차이와 언제 사용해야 하는지에 대해서 궁금했었는데, 이번 포스팅을 작성하면서 정리하려고 합니다. 이펙티브 자바에서도 이와 관련한 토픽들이 있으니 찾아보면 도움이 될 것 같네요. Abstract Class와 Interface의 공통점 abstract class Animal { public abstract void attack(); public void move() { System.out.println("move!"); } } interface Talkable { public void ..