오늘은 안드로이스 스튜디오의 기본을 배웠다. kotlin을 사용하여 앱개발을 할때의 기초적인 함수들을 익혔다. 레이아웃을 설정하고 그걸 바탕으로 코딩을 추가하여 버튼을 누를때 새로운 화면으로 넘어간다거나 입력값을 받는 방법이라거나 받은 입력값을 바탕으로 간단한 계산을 하여 결과값에 따라 다르게 출력하는 방식을 배웠다. 어떠한 선택지를 두고 고르는대로 다른 ...
오늘 로또번호 생성기를 만들었다. 둘째날이라고 조금 눈에 익는것 같아서 좋았다. 특히 when 구문의 용법을 대강 알게 된 게 좋았다. when{} 형식으로 -> 를 사용해서 -> 왼쪽에 쓰인 조건이 충족될 때 오른쪽 구문이 실행되는 형식이었다. 마지막은 else를 이용하는 것이 편리한 것 같았다. 특히 오늘 한 로또생성기는 45개뿐이라 그 외의 상황을 ...
오늘은 git을 배웠다. 개발자라면 누구나 사용한다는 매체를 배우게 돼서 어쩐지 로망이 실현되는 기분도 들었다. 일단 맥북에서는 terminal을 사용하고 윈도우에서는 git bash를 사용하여 폴더를 만든다거나 파일을 작성하는 등의 동작이 가능했다. mkdir 로 디렉토리, 즉 폴더를 생성할 수 있다. cd 로 폴더를 이동할 수 있고 기억이 잘 안난다...
오늘은 git 복습을 했다. 리눅스 명령어 pwd : print working directory 라는 뜻으로 현재 작업중인 폴더를 표시한다. cd 폴더명 : change directory 로 폴더를 이동할 때 사용한다. 폴더명 대신 ..을 사용하면 상위 폴더로 이동한다. mkdir 폴더명 : make directory 의 줄임으로 폴더를 생성한다. 뒤에 ...
오늘은 kotlin 문법을 배웠다. 1) camelCase (카멜케이스) 표기법 주로 변수, 메소드의 이름을 지정할 때 사용해요 seoulFood (O) seoul_food (X) seoulfood (X) 2) snake_case (스네이크케이스) 표기법 주로 상수의 이름을 지정할 때 사용해요 seoul_food (O) SeoulFood (X) 3) ...
오늘 배운 내용은 생소한 것이 많아서 오랜만에 필기를 해가면서 복습을 했다. 그걸 토대로 내용을 정리하려고 한다. 메소드 : 이름이 붙은 로직 이때 () 안의 내용은 메소드가 요구하는 매개변수로써 필수로 넣어주어야 호출이 가능하다. 매개변수가 없을 시에는 괄호 대신 :Unit으로 명시하거나 아예 생략이 가능하다. 객체 지향 프로그래밍 : Object ...
내일 정오까지 콘솔창으로 계산기를 구현하는 과제를 제출해야해서 오늘까지 완성시키는 것을 목표로 시도해보았다. 그저께인가 착각하여 xml파일로 구현한 계산기 레이아웃은 아깝지만 당장 이용할 수 없을 것으로 보고 일단 과제를 해결하는 것을 목표로 두고 움직였다. Lv1 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만...
어제 들었던 git 특강 내용을 정리하려고 한다. 어제는 과제 내용을 쓰느라 쓸 공간이 모자랐다. branch란 개념을 처음으로 배웠다. branch는 복사본과 유사한 개념이다. git branch 브랜치 이름 으로 생성할 수 있다. 만들고 나서 당장은 아무 변화가 없기 때문에 현재 존재하는 브랜치를 확인하고 싶을 때 git branch 로 원래 브랜...
오늘은 저번주차때 강의를 들었던 내용을 복습하는 시간을 가졌다. 그때 들을때는 다시 복습을 해야겠다 여기긴 했지만 그래도 한번 가볍게 정리해보면 충분히 습득 가능할 것 같다 생각했는데 오늘 다시 하다보니 모르겠는 부분이 너무 많았다. 그래서 오늘 하루종일 붙잡고서야 겨우 마무리를 했다. 어쨌거나 오늘 했던 내용을 정리해보려고 한다. 접근제한자 : 변수나 ...
오늘은 과제에 집중을 하다보니 굵직하게 얻은게 있다기보다는 조금씩 알게 된 사항들이 많았던 것 같다. 일단 오늘 풀었던 알고리즘 문제를 팀원들과 리뷰해보면서 간소화를 정말 많이 할 수 있었다. 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수 완성하기 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12...
오늘은 아침에 알고리즘 문제를 풀고 오후 내리 키오스크 과제만 했다. 9to9에 익숙해질수록 시간을 효율적으로 쓰는게 아니라 오히려 시간을 허투루 쓰고 있는 것 같은 기분이다. 오늘 하루종일 무엇을 했는지 돌이켜보자면 한게 별로 없는것 같다는 생각이 든다. 확실히 팀원분들의 존재가 새로운 것을 배우고 발전하는데에 도움을 많이 주는 것 같다. 아래 코드도 k...
오늘 푼 문제는 핸드폰 번호 가리기 문제였다. 초반에는 주석처리해둔대로 for문으로 처리하려고 했다. 문자열 phone_number를 toMutableList로 리스트로 만든 다음에 리스트 인덱스에 맞춰서 i번째 숫자를 replace로 \*로 바꾸는 작업을 하려 한 것이다. 그런데 replace에 무언가 문제가 생겼다. unresolved referenc...
오늘 12시까지 제출인 키오스크 과제를 5분 전까지 붙잡고 있던 결과 Lv5까지 구현하는데 성공했다. Lv3 까지는 기본적인 키오스크 기능 - 메뉴 출력과 결제까지를 상속을 통해 만드는 것이었고 그건 사실 며칠 전에도 어느 정도 작동이 되는 상태였다. 그런데 일단 만들기부터 하다보니 정리가 잘 되어있지가 않고 욕심만 넘쳐나는 나란 인간은 장바구니 기능까...
오늘은 새로운 챕터가 시작되는 날이었다. 새로운 강의를 지급받고 새로운 팀에서 새로운 규칙을 정하고 새로운 과정을 시작하게 되었다. 그러면서 새로운 과제도 생겼다. 하지만 아직 저번 챕터에서 마무리하지 못한 내용이 많은 나는 이번주에 최대한 복습을 하면서 과제를 진행해볼 생각이다. 아직까지 앱개발 입문이라서 사전캠프 때 했던 내용으로 어느 정도 이해가 됐기...
오늘은 5주차 문법을 복습했다. 헷갈리는 것들이 너무나 많아서 구글 검색을 해가며 하다보니 시간이 금방 지나가버렸다. 배운 내용을 간단히 정리하겠다. kotlin 문법 심화 (5주차 내용) 1. 자료형 변환 일반 자료형은 to자료형() 메소드로 간단하게 바꿀 수 있다. 객체 자료형은 상속관계에서 변환할 수 있다. 자식클래스를 부모클래스의 자료형으로 객체...
mapIndexed() mapIndexed는 특정 iterable을 대상으로 map 연산을 할 때, 원소 뿐 아니라 해당 원소가 갖고 있는 인덱스를 함께 묶어 매핑하게 해주는 함수라고 한다. 어떠한 리스트에 mapIndexed 연산을 수행하면 리스트의 원소와 각 원소가 갖는 인덱스를 받아 람다식으로 표현한 함수를 대입한다. parseInt() Intege...
오늘은 앱개발 입문 강의를 마저 듣고 실습을 해봤다. 확실히 실습을 하니까 조금 재미가 붙는것 같다. 일단 흐름만 대강 이해하고 과제를 시작하면서 익히기로 했다. 과제 1단계 체크리스트 [x] 새 프로젝트를 만들고 MainActivity의 이름을 SignInActivity로 바꿔주세요. [x] 로고 이미지는 원하는 이미지로 넣어주세요. [x] 아이...
이번주 내내 문법에 매달리다보니까 초에는 앱개발 강의를 제대로 듣지를 못했었다. 키오스크 만들때 시간에 쫓겼던 기억에 불안해져 문법을 대강 마무리짓고 강의를 듣기 시작했다. 다행히도 온보딩 주차 때 진행했던 강의에서 다뤘던 내용들을 되짚고 넘어가는 느낌이어서 그런지 강의를 따라가는 게 어렵지가 않았다. 물론 헷갈리고 어려운 개념은 있었지만 일단 실습을 하...
어제는 장염에 걸려 드러누워 있느라 공부를 하지 못했다. 평일에 누워있던 건 제법 오랜만이었던 것 같다. 어쨌거나 그런 덕분에 안타깝게도 챌린지반 수업을 실시간으로 듣질 못했다. 과제도 있었는데 내용을 모르니 영 감을 잡기가 어려웠다. 그래서 원래 오늘 오전에 강의를 보려고 했는데 녹화본이 아직 올라오지를 않아서 볼수가 없었다. 그래서 오늘은 주말과 공가...
stack stack에 대해 잘 설명해둔 포스팅이 있어 가져왔다. toIntOrNull 정수형으로 변환이 불가능하면 null을 반환함. Int? 형이 됨 toString(n), toInt(n) toString(n)은 앞의 값을 n진법으로 바꾸어 String형으로 바꾼다. toInt(n)은 앞의 값을 n진법으로 읽었을 때 10진수의 값을 반환한다. do...
오늘 드디어 챌린지반 수업을 들었다. 월요일에 무리를 해서라도 들을 걸 그랬나 싶었다. 조금이라도 이 알 수 없는 얘기를 빨리 들었더라면 머릿속에서 알 수 없는 화학작용이 일어나서 조금이라도 빨리 이해가 되지 않았을까 하는 알 수 없는 아쉬움이 들었던 것이다. 어쨌거나, 난 대략적으로 이해를 한듯 만듯 하기 때문에 뭐라도 정리해보려고 오늘의 주제로 정해보...
챌린지반 과제를 하려고 했다. 그 말은 다 못했다는 뜻이다. MVVM 패턴을 시도해보려고 했는데 라이브데이터니 옵저버니 뭐니 뭐가 뭔지 감을 하나도 못 잡겠어서 한창을 화면을 노려만 보다가 넉다운했다. 사실 집중이 너무나도 안됐다. 왤까? 무언가 새로운 기능이 아니라 기존 틀을 바꾸는 거라서 의욕이 나지 않았던 걸까? 모르겠지만 어쨌거나 오늘 찾아봤던 내...
만우절 기념으로 작성을 생략하겠다. 그러고 싶다. 안타깝게도 만우절은 공휴일이 아니고 나는 쉴 수 없다. 정말 거짓말 같은 이야기다. 오늘은 팀프로젝트 발제가 있던 날이다. 나에게 팀플이란 대학시절 망해버린 조별과제 이후로 존재하지 않던 것이다. 솔직히 걱정이 많이 되었다. 심지어 익숙하지 않은 도구들을 활용해야만 한다는 어려움까지 추가가 된 ...
오늘은 조별과제에서 역할분담 부분을 마무리하고 merge를 진행하게 됐다. 중간에 국취제 상담 때문에 자리를 비워야했는데 오전부터 하나둘 개인이 맡은 부분을 완성한 팀원들이 pr을 하기 시작하면서 나도 빨리 끝내고 가야겠다는 생각을 했던게 문제의 시작이었던 것 같다. 어쩌면 애초에 pull requests라는 과정을 오인하고 있었던 것이 잘못이었는지도 ...
오늘은 어제에 이어서 merge했던 개인작업들을 연결해주는 작업을 했다. issue 오늘 했던 일이다. 일단 어제 하다 말았던 intent값 전달을 완료했다. 다같이 화면공유로 코드를 보며 코드를 작성했다. 회원가입 페이지에서 입력한 이름과 아이디 등 여러가지 값을 데이터 클래스에 저장해둔 뒤 putExtra로 메인페이지에 보내고, 그걸 메인에서 받...
오늘은 작업을 마무리하고 발표자료를 제작했다. 코드작업은 일단락이 되었다. 사실 약간의 아쉬움이 남기는 했지만 내 작업물이 아닌 팀원 모두의 작업물이니 이런 부분들이 생길 수밖에는 없다고 생각한다. 어쨌거나 협업을 하게 되면 자주 겪을 것 같다. 발표자료를 만드는데에 시간을 쓰는 것도 조금은 아쉽긴 하다. 이번주에 챌린지반 과제도 전혀 하지 못했다. 협...
오늘은 발표를 마치고 챌린지반 수업을 들었다. 아침에는 오랜만에 코드카타를 진행했다. 내 맘대로 문자열 정렬하기였나 그런 문제였다. 오랜만에 풀어서 한번 가져와봤다. 이 문제를 처음 풀기위해 시도한건 꽤 됐는데 그땐 분명히 뭐가 뭔지 모르겠고 코드가 잘 안그려졌었는데 오늘 해보니 좀 허무할만큼 간단하게 풀린 것 같다. String 여러개가 있는 Ar...
오늘은 새로운 발제였다. 새로운 팀에서 개인과제를 약 2주정도 진행하고 다시 팀프로젝트를 하는 일정이다. 이번 개인과제는 당근마켓 오마주다. 강의를 살펴보니 총 시간이 1시간 반 정도 남짓이었다. 내용은 대강 뷰바인딩과 리사이클러뷰, 프래그먼트, 다이얼로그, 알림 정도였다. 나란 P 인간은 일단 들어봐야 뭐라도 가닥이 잡히기 때문에 강의를 보는 것부...
뷰바인딩 build.gradle 에서 빌드설정 추가 Activity 내에서의 사용법 리사이클러뷰 (RecyclerView) xml 파일에 recyclerView를 만든다. adapter 클래스 정의 Activity 내에서의 활용법
getString 활용 - Activity 외에서 getString 활용 - Activity 외에서2 (RecyclerView.Adapter) Fragment에서 recyclerview 활용 Fragment에서 recyclerview 활용2 (Fragment 재활용) RecyclerView에 divider 넣기 - ItemDecoration [이미...
API 33 onBackPressed() deprecated AlertDialog - 기본 다이얼로그 사용법 정리 getDrawable, getColor Deprecated
preference 1. 기본 정보 어플을 종료하더라도 정보를 남기고 싶을 때 사용한다. 사용 시 어플 내 폴더에 XML 파일로 키-값 세트 정보가 저장된다. 응용 프로그램의 고유한 정보로 외부에서는 읽을 수 없다. 2. 사용 방식 getSharedPreferences(name, mode) 여러개의 파일을 사용하는 경우에 사용한다. name은 데이터를...
오늘은 심화과정 강의를 전부 들었다. 위치정보를 활용하는 방법과 Retrofit에 관한 것이었는데 매우매우 유용한 내용이어서 활용할 생각에 조금 설렜던 것 같다. 공공데이터포털은 예전에 직장생활 할 때 종종 이용하곤 했던 곳인데 이런 식으로 활용하게 되니 활용 방식이 무궁무진한 것 같았다. 시간만 많으면 여러가지로 실습을 해보고 싶은 생각이 들었다. 이...
탭 레이아웃 api retrofit 오늘은 수업 실습을 해볼까하는 마음도 있었지만 과제하는데에 시간을 다 쓴것 같다. 일단 브랜치를 새로 팠다. 예전 팀플 때 이슈를 파서 작업했던게 생각이 나서 이슈를 세개정도 파놓고 브랜치를 만들었다. 하나하나 차근차근 진행할 예정이다. 첫번째 이슈로는 아무래도 가장 커다란 놈을 골랐다. API 활용인데 오늘 내내...
onBackPressed Fragment BackStack handler fragment 화면전환 관련 팀프로젝트 코드가 마무리됐다. 이제 더 이상 코드는 손대지 말자고 약속했다. 그 기념으로 오랜만에 TIL을 쓴다. 링크는 작업하면서 도움이 되었던 양질의 링크들을 가져왔다. 하면서 습관적으로 꺼버린 창도 꽤 돼서 잃어버린 것도 몇 개 있어 아...