전체 글

전체 글

    [아무튼 운동] 남의 챌린지 1일차<img src=">

    [아무튼 운동] 남의 챌린지 1일차

    다시 시작별다를 것 없던 스터디 와중 루디님이 9월 23일이 되면 2023년까지 100일이 남게 되고, 이 날부터 꾸준히 무언가를 매일 하면 100일동안 하게 되는 것이라고 알려주었다. 습관을 들이는데는 보통 60www.pinslog.com챌린지를 한지 벌써...70일이 넘었...을...것이다. (날짜를 세지 않아서 모름) 다들 챌린지에 걸린 상금을 포기할 수 없는지 너무 잘해내고 있어서 한분이 묘수를 내었다. 서로의 챌린지를 바꿔서 해보는 것! 그렇게 우리는 상금을 차지하기 위해 익숙해진 챌린지에 변화를 주기위해 각각의 챌린지를 일주일씩 번갈아가면서 하기로 했다. 12월 4일부터 진행된 이 챌린지의 챌린지는 1. 기술 블로그 쓰기 (저번주에 진행) 2. 운동하기 (이번주에 진행) 3. 필사하기 (다음주..

    [Kotlin] tailrec 꼬리재귀<img src=">

    [Kotlin] tailrec 꼬리재귀

    알고리즘 문제를 풀다가 알게 된 녀석 문제 : 콜라츠추측 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제의 키워드는 '오버플로 Overflow' 이다. 오버플로 Overflow 넘쳐 흐른다는 뜻으로, 컴퓨터의 메모리가 8비트의 데이터를 저장할 수 있다고 하고, 편의상 부호는 없는 양수인 경우만 고려해 보자. 가장 작은 값은 0000 0000 (=0) 이며, 1씩 증가시키면 0000 0001 (=1)을 거쳐 최댓값인 1111 1111 (=255)에 도달하게 된다. 여기에서 1을 다시 한번 더하게 되면 최댓값의 범위를 넘어서게 되고, 최솟값인 0000..

    [Kotlin] Scope Function 범위 지정 함수<img src=">

    [Kotlin] Scope Function 범위 지정 함수

    들어가며 처음 코틀린을 공부했을 때, 스코프 함수를 만나고 이것이 코틀린 진입장벽 중 하나라고 생각했다. 생전 처음 보는 키워드에다 (본인은 자바를 사용하고 있었다.) 어디에 뭘 써야하는지 도무지 감이 오지 않았기 때문이었다. 스코프함수에 대해 공부를 했지만 시간이 흐른 뒤에야 고백하자면 100% 이해하고 사용한 것이 아니었다. 요즘같이 기본을 탄탄하게 다져야겠다는 생각이 드는 바로 지금, 코틀린의 스코프 함수를 다시 알아보기로 한다. Scope Function (이하 스코프 함수) The Kotlin standard library contains several functions whose sole purpose is to execute a block of code within the context of..

    [IDE] VSCode 에서 Kotlin 시작하기 (feat. MAC OS)

    [IDE] VSCode 에서 Kotlin 시작하기 (feat. MAC OS)

    1. Java 설치하기 brew install --cask adoptopenjdk 나는 이미 설치가 되어 있었다. 확인하려면 java —version 을 입력한다. 2. Kotlin 설치하기 brew install kotlin 설치가 끝나면 제대로 설치되었는지 확인한다. kotlinc -version 3. VSCode 셋팅하기 1) Code Runner 설치 2) Kotlin Language 설치 4. 사용해보기 TroubleShooting 코드를 입력하고 실행했는데 아래와 같은 문구가 뜨며 결과를 출력해주지 않았다. HelloWorld.jar에 기본 Manifest 속성이 없습니다. 저장을..안해서..그랬다 ㅎ 이렇게 해서 사용하고 있었는데 그래도 인텔리제이를 따라올 순 없어서 그냥 교육용 인텔리제이를..

    바쁘다 바빠 현대사회

    바쁘다 바빠 현대사회

    1. 19시에 일마치고 집으로 뛰어와서 (실제로 뛰지는 않았습니다.) 후다닥 자리에 앉아 강의를 듣고 있다. 한동안 일에 치여 자기계발을 멀리하고 살았는데 빼먹지 않고 강의 듣는 나 오늘은 칭찬해주고 싶다. 2. 체감 5키로가 넘는 맥북 프로를 두고 최근 맥북 에어를 들였다. 무려 m2다...! 폼팩터가 프로처럼 바뀌어서 더 마음에 든다. 작고 가볍고...앙증맞다...품에 안고 있으면 아이패드를 안은 것만 같다. 내 출근 가방에도 쏙 들어간다. 그렇게 아이패드 에어와 맥북 에어를 짊어지고 출퇴근을 한다. 에어 + 에어....조금은 무거울지도? 그럼에도 너무 좋다. 3. 요즘은 시간을 아껴쓰려고 노력한다. 정확하게는 틈날 때에 하나라도 해치우려고 하는 것 같다. 정각에 시작해야지! 같은 것들은 이제 더이상..

    GS 인증 생생 기록 - 1

    GS 인증 생생 기록 - 1

    GS 인증 생생 기록 - 0 참여한 프로젝트의 일차적인 개발이 마무리 된 후 GS 인증 취득 담당 업무를 맡게 되었다. 인증 대상이 내가 참여한 안드로이드 앱이여서 두근거리는 마음으로 업무에 임했다. 아직은 진행중인 www.pinslog.com 지난 글에서 GS 인증 신청에 대해 알아보았다. 이번에는 상담 및 계약에 대해서 작성해보려고 한다. 상담 및 계약 사실 계약은 내가 직접 진행한 것이 아니라 쓸 것이 없어서 상담과 계약을 하나로 묶었다. 말했던 것 처럼 세 곳에 상담을 신청했고 총 두곳과 상담을 진행했다. (어디서 했는지는..굳이 안쓰는 것이 좋을 것 같다.) 내가 직접 쓴 서류와 제품을 가지고 상담을 진행하려니 여간 떨리는 것이 아니었다. 가서 먼저 우리 시스템(제품)에 대해 설명을 하고, 먼저..

    [Git] 머지 취소하기

    [Git] 머지 취소하기

    실수로 다른 브랜치와 머지 해버린 적이 있었다. 이럴 때 머지를 취소하기 위한 명령어는 다음과 같다. git reset --merge [이전 커밋 해시] References Git에서 머지 되돌리기 - 마지막 머지를 취소하는 방법 브랜치는 이미 프로덕션에 있는 코드를 함부로 변경하지 않으면서 작업할 수 있도록 해주는 깃의 필수적인 부분입니다. 다른 브랜치에서 작업을 마친 후 main 브랜치에 병합(merge, 이하 머지)하여 www.freecodecamp.org

    GS 인증 생생 기록 - 0

    GS 인증 생생 기록 - 0

    참여한 프로젝트의 일차적인 개발이 마무리 된 후 GS 인증 취득 담당 업무를 맡게 되었다. 인증 대상이 내가 참여한 안드로이드 앱이여서 두근거리는 마음으로 업무에 임했다. 아직은 진행중인 업무라 조금은 조심스럽게 GS 인증에 대해서, 해당 업무를 진행하면서 어떤 애로사항이 있었는지 알아보고자 한다. GS 인증 “소프트웨어 품질인증(GS인증)”은 소프트웨어 제품의 품질확보 및 소프트웨어 업체의 판로지원을 위해 소프트웨어산업 진흥법 및 과학기술정보통신부 고시에 따라 시험·평가하여 적합한 경우 소프트웨어 품질 인증서 및 인증 마크를 부여합니다. 말그대로 우리 제품이 Good Software 라는 것을 국가로부터 인정받는 것이다. GS 인증을 취득하게 되면 다음과 같은 혜택이 있다. - 조달청 우수조달품목 선정..

    오늘 일기

    오늘 일기

    요즘 플러터 공부를 하고 있다. 다른 크로스플랫폼과는 다르게 플러터는 OS를 통하지 않고 플러터 엔진으로 직접 화면을 그린다고 한다. 그래서 얼마든지 원하는 UI를 구현할 수 있다고 한다. 안드로이드 네이티브도 재밌지만 플러터로 Android, iOS 더 나아가서는 web, 데스크탑 앱까지 빌드할 수 있다니 기대된다. 분명 일년전 쯤에도 같은 내용을 공부했는데.. 그때 이해하는 것과 지금 이해하는 것이 다르게 느껴진다. 좀 더 맥락이 이해가 잘 된다고 해야하나.. 그만큼 나의 깊이가 깊어졌다고 생각해도 될까 이거 하하 열심히 해보자아

    [Flutter] iOS 디바이스 개발자 옵션 및 연결 관련 문제 해결하기

    [Flutter] iOS 디바이스 개발자 옵션 및 연결 관련 문제 해결하기

    iOS 디바이스에서 앱 실행하기 개발자 모드 켜기 [설정] - [개인정보 보호 및 보안] - 보안 섹션 [개발자 모드] 켬 신뢰하는 디바이스 설정 처음 앱을 디바이스에서 실행하려고 하면 신뢰할 수 없는 어쩌고...하면서 대화창이 뜬다. 이때 신뢰하는 디바이스 설정을 해주어야 앱을 정상적으로 빌드할 수 있다. [설정] - [일반] - [VPN 및 기기관리] - 개발자 앱 선택 - 신뢰 TroubleShooting - 사이닝 관련 flutter 프로젝트에서 처음으로 실제 iOS 디바이스에서 실행을 하려면 Xcode 상에서 최초 연결이 필요하다. 그러기 위해서 개발자 모드를 켜줘야 하고… 그리고 사이닝 관련 설정에서 팀을 지정해줘야 한다. Runner 탭 클릭 - Signing & Capabilities 에서..

    [Android] Activity 스택 관리 (feat. Intent와 Flag)

    [Android] Activity 스택 관리 (feat. Intent와 Flag)

    Case1. 특정 액티비티를 상단에 띄우기 A - B - C 순으로 스택이 쌓였다고 할 때, C가 사용자의 화면에 떠있을 것이다. 이때 C에서 A로 이동하면서 B, C를 스택에서 제거하고 싶다면 Intent의 Flag 중 FLAG_ACTIVITY_CLEAR_TOP 을 사용하면 된다. Intent intent = new Intent(this, AActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); 이동하려는 액티비티가 스택에 이미 존재하면 그 위에 쌓여있는 모든 스택을 제거하고 해당 액티비티가 다시 상단에 오르게 되는 것이다. Case2. 스택을 모두 제거하고 싶을 때 스택에 이동하려..

    [Java, Kotlin] SimpleDataFormat 밀리세컨까지 나타내기

    [Java, Kotlin] SimpleDataFormat 밀리세컨까지 나타내기

    밀리세컨드까지 나타내야할 때가 있다. 찾아다니다 까먹지 않기 위해 기록한다. val sdf = SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS", Locale("ko", "KR")) val dateString = sdf.format(System.currentTimeMillis()) println(dateString) // 2023.11.30 23:14:26.975 패턴은 yyyy.MM.dd HH:mm:ss.SSS 인데 여기서 주의할 점은 뒤의 SSS는 반드시 대문자로 써주어야 한다는 점이다. yyyy.MM.dd HH:mm:ss.sss 로 입력할 경우 결과는 2023.11.30 23:15:47.047 와 같다.