Preference DataStore와 Proto DataStore의 차이
·
Android/Jetpack
개요SharedPreferences는 이미 무덤으로 들어간지 오래.하지만 현재 회사는 아주 아주 오래된 프로젝트였고, 여전히 SharedPreferences를 사용하고 있었다.데이터 무결성이 지켜지지 않아 자꾸 문제가 발생하였기에 마이그레이션을 하기로 결정 !! 이전 회사에서 사용했던 방법은 JetPack에서 나온 DataStore였다.당연하게 써왔던 DataStore의 개념이 NowInAndroid를 보며 무너졌다. Proto DataStore ???그게 대체 뭔데 !!!!!!! 모르면 정리해야지...정리1. Preference DataStore란?Key-Value 형식으로 데이터를 저장하는 방법이다.SharedPreferences의 방식과 유사하다.단, 구조화 된 데이터는 지원하지 않으며 Boolea..
[프로그래머스/Kotlin]Lv0 - 안전지대
·
프로그래머스/Kotlin | Level1
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요.제한사항board는 n * n 배열입니다.1 ≤ n ≤ 100지뢰는 1로 표시되어 있습니다.board에는 지뢰가 있는 지역 ..
[프로그래머스/Kotlin]Lv0 - 겹치는 선분의 길이
·
프로그래머스/Kotlin | Level1
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제문제 설명선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요.lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다.선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다.제한사항l..
[프로그래머스/Kotlin]Lv2 - 멀쩡한 사각형
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, ..
[프로그래머스/Kotlin]Lv2 - 우박수열 정적분
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명콜라츠 추측이란 로타르 콜라츠(Lothar Collatz)가 1937년에 제기한 추측으로 모든 자연수 k에 대해 다음 작업을 반복하면 항상 1로 만들 수 있다는 추측입니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다.1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.2.결과로 나온 수가 1보다 크다면 1번 작업을 반복합니다.  예를 들어 주어진 수가 5 라면 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒2 ⇒ 1 이되어 총 5번만에 1이 됩니다.수가 커졌다 작아지기를 반복하는 모습이 비구름에서 빗방울이 오르락..
Android Jetpack ComposeUI 기초 문법 및 특징
·
Android/UI-UX 디자인
ComposeUI 강의를 열심히 봤는데, 아무리 따라해도 머리에서 휘발되어버리는 느낌이다.직접 Compose를 이용한 토이 프로젝트를 하기 전에 전체적으로 문법 정리를 먼저 해야할 것 같았다.  1. @Composable 애너테이션 Composable 함수Jetpack Compose에서 UI를 정의하는 기본 단위함수에 @Composable 애너테이션을 붙이면 이 함수는 UI 요소를 그릴 수 있게 된다.@Composablefun Greeting(name: String) { Text(text = "Hello, $name!")} 2. Text 텍스트 출력텍스트를 화면에 표시하는 가장 기본적인 컴포넌트이다.@Composablefun SimpleText() { Text(text = "Hello, Wor..
[프로그래머스/Kotlin]Lv2 - 리코챗 로봇
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명리코쳇 로봇이라는 보드게임이 있습니다.이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임입니다.이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 칩니다.다음은 보드게임판을 나타낸 예시입니다....D..R .D.G... ....D.D D....D. ..D.... 여기서 "."은 빈 공간을, "R"은 로봇의 처음..
[프로그래머스/Kotlin]Lv2 - 당구 연습
·
프로그래머스/Kotlin | Level2
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제문제 설명프로그래머스의 마스코트인 머쓱이는 최근 취미로 당구를 치기 시작했습니다.머쓱이는 손 대신 날개를 사용해야 해서 당구를 잘 못 칩니다. 하지만 끈기가 강한 머쓱이는 열심히 노력해서 당구를 잘 치려고 당구 학원에 다니고 있습니다.오늘도 당구 학원에 나온 머쓱이에게 당구 선생님이"원쿠션"(당구에서 공을 쳐서 벽에 맞히는 걸 쿠션이라고 부르고, 벽에 한 번 맞힌 후 공에 맞히면 원쿠션이라고 부릅니다) 연습을 하라면서 당구공의 위치가 담긴 리스트를 건네줬습니다. 리스트에는 머쓱이가 맞춰야 하는 공들의 위치가 ..
Github Actions로 업무 자동화 도입하기 #4. Jobs, Step, Actions, Runners
·
개발/버전 관리
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?Github Actions로 업무 자동화 도입하기 #2 : Workflows (워크플로우) Github Actions로 업무 자동화 도입하기 #3 : Workflows를 트리거 하는 이벤트  GithubActions의 구성요소를 정의하는 데에 많은 시간을 쏟고 싶지 않다.그래서 나머지 구성요소를 싹 묶어서 정리하기로 했다 ㅎㅎ;; 1. Jobs1-1. Job 란?Jobs는 Workflows 내에서 실행되는 개별 작업 단위이다.워크플로우는 여러 개의 잡으로 구성될 수 있으며, 각 Job은 독립적으로 실행된다.1-2. Job의 특징독립성: 각 Job은 독립적으로 실행되며, 필요에 따라 다른 Job에 의존성을 설정할 수 있..
[프로그래머스/Kotlin]Lv1 - 숫자 문자열과 영단어
·
프로그래머스/Kotlin | Level1
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제문제 설명네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.1478 → "one4seveneight"234567 → "23four5six7"10203 → "1zerotwozero3"이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solu..
Github Actions로 업무 자동화 도입하기 #3 : Workflows를 트리거 하는 이벤트
·
개발/버전 관리
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지 완료하기 !!그러기 위해선 우선 Github Actions가 무엇인지 확인해봐야 한다. 참고: https://docs.github.com/ko/actions/learanovice-dp.tistory.com Github Actions로 업무 자동화 도입하기 #2 : Github Actions 구성요소 (1) - Workflows (워크플로우)Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지..
Github Actions로 업무 자동화 도입하기 #2 : Workflows (워크플로우)
·
개발/버전 관리
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지 완료하기 !!그러기 위해선 우선 Github Actions가 무엇인지 확인해봐야 한다. 참고: https://docs.github.com/ko/actions/learanovice-dp.tistory.com 챕터 1에서는 Github Actions가 무엇인지를 정리했다. (글 상단 링크 참고) 이번 글에서는 챕터 1에서 잠깐 언급된 Github Actions 구성요소에 대한 자세한 설명을 차근차근 정리해보려고 한다. 그전에 앞서 구성요소는 어떤 것들이 있는지 간략하게 정리하자면 아래와 같다. 이벤트(Event): 저장소에서..
Java에서 try~catch문, 남용하면 문제 없을까?
·
개발/개념 및 기법
Java에서 예외(Exception) 처리를 할 때 흔히 사용하는 try~catch 문. 이걸 사용하면 아무래도 강제 종료의 위험성은 떨어진다.하지만 남용할 때의 부작용은 없을까?1. 예외(Exception)이란?예외(Exception)는 프로그램 실행 중에 발생할 수 있는 비정상적인 상황을 나타내는 객체이다.프로그램의 일반적인 흐름을 방해하며, 적절히 처리하지 않으면 프로그램이 비정상적으로 종료될 수 있다.그렇기에 Java에서는 예외를 처리하기 위해 try~catch~finally 블록을 사용한다. 예외는 크게 두 가지로 분류할 수 있다. 1-(1) Checked ExceptionChecked Exception은 컴파일 시점에서 체크되는 예외로,반드시 try~catch 블록을 사용하여 처리하거나 thr..
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?
·
개발/버전 관리
현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지 완료하기 !!그러기 위해선 우선 Github Actions가 무엇인지 확인해봐야 한다. 참고: https://docs.github.com/ko/actions/learn-github-actions/understanding-github-actions1. Github Actions란?GitHub Actions는 연속 통합 및 연속 배포(CI/CD) 플랫폼으로, 빌드, 테스트, 배포 파이프라인을 자동화할 수 있게 해준다.예를 들어, 저장소에 새로운 Pull-Request가 생기면 이를 빌드하고 테스트하는 workflows를 만들거나,병합된 Pull-Request를 프로덕션에 배포하는 작업을 자동화할 수 있다.Git..
개발 블로그를 운영하는 것에 대한 회의감
·
개발새발 안드로그/Daily Log
개요내가 개발 블로그를 작성하는 이유는 뭘까?어떤 내용이든 내가 공부한 내용을 기록하면 좋을 것이라 느꼈다.근데 점점 그게 보여주기 식으로 변질되어 간다. 누군가에게 내 정보를 다 알려주기 싫어서.혹은 내가 잘 이해하지 못하는 내용이어서. 나의 글은 알맹이가 빠진 채 겉핥기 식이 대부분이다. 1일 1 포스팅을 도전했으나, 질적으로 떨어지는 포스팅을 올리게 될 뿐.모든 게 의미가 없어졌다고 느꼈다.기초 공사부터 탄탄히 밟아 갈 필요가 있다.개발 커리큘럼알고리즘 문제 풀이현재 나는 2개의 스터디를 매주 진행 중이다.이 스터디들은 모두 알고리즘 관련 스터디인데, 중간중간 낮은 난이도를 풀기도 한다. 프로그래머스 Level1, LeetCode Easy 문제.해당 문제들은 "문제를 풀었다." 그 뿐, "공부를 했..
뿌꾸 빵
'분류 전체보기' 카테고리의 글 목록 (4 Page)