Apple is Apple
[Kotlin] Scope function
Language/Kotlin 2023. 7. 31. 17:12

Scope function Kotlin에서 제공하는 Scope function이다. 주로 객체와 함께 사용되며 편리하고 간결한 코드 작성을 도와준다. 간결한 코드 작성을 위해 필수적으로 알아두면 좋은 챕터라고 생각한다. 이름에서 알 수 있듯이 이 함수를 호출하면 Scope가 생기게 되고 이 Scope안에서는 전달된 객체가 "it" 또는 "this"라는 이름의 Context Object로 사용할 수 있게 된다. Scope function은 총 5가지가 있는데 함수마다 Context Object(전달된 객체)를 참조하는 방법과 리턴 값(Context Object or lambda)이 상이하다. 1. let let은 null이 아닌 값만 실행시키고 싶을 때 주로 사용된다. 그래서 let은?. 연산자와 같이 사..

WIL 3주차
내일배움캠프 7기/WIL 2023. 7. 30. 20:57

DOING IN THIS WEEK : 첫 팀 과제와 알고리즘 문제해결시간이 추가된 주차였다. 팀과제를 통해 팀원들과 소통하며 프로그램을 설계해 보고 구현을 해보았다. 또, 협업에 있어서 깃, 깃허브를 사용하며 협업에 사용되는 방법을 익혔다. 서로 어려운 부분이 있으면 도와가며 진행을 하였다. 알고리즘 문제도 문제를 풀다가 어려운 부분이 있으면 서로 이야기해보는 시간을 가지며 실력을 늘릴 수 있는 시간이 있었다. 이번주의 키워드 소프트웨어 설계 클래스 설계 클래스 재설계 Git & Github Github pull request 정보 알고리즘 풀어보기 FEELING : 확실히 혼자 공부하는 것과 같이 공부하는 것은 다르다고 느꼈다. 혼자 공부할 때는 그냥 맘대로 했었는데, 같이하게 되니 서로 규칙이나 협업..

내일배움캠프 7기 Android TIL 11일차 (2023.07.28)
내일배움캠프 7기/TIL 2023. 7. 29. 23:03

일일 회고 첫 팀과제를 마무리하였다. 같이 알고리즘 문제도 풀어보고 팀 과제도 해결해나가고... 이렇게 같이 공부한다는 것 자체가 값진 경험인 것 같다. 앞으로도 진행하면서 서로가 서로에게 도움을 주면서 성장할 수 있을 것 같다. 오늘의 키워드 알고리즘 풀어보기 일일 알고리즘 (프로그래머스 - 최빈값 구하기) 입력 값으로 배열이 주어지고 출력값으로 배열의 최빈값을 구하거나 최빈값의 개수가 같을 때 -1을 출력하면 되는 문제이다. 입력예시 array result [1,1,2,2,3,3,3] 3 [1] 1 [1,1,2,2] -1 반복문을 돌려가며, 숫자 종류의 갯수를 세며 찾을 수 있긴 하지만, kotlin collection funtion을 활용하면 조금더 간결하게 코드를 만들어 볼 수 있다. // arr..

article thumbnail
내일배움캠프 7기 Android TIL 10일차 (2023.07.27)
내일배움캠프 7기/TIL 2023. 7. 27. 21:05

일일 회고 팀과제도 어느덧 막바지에 들어간다. 계속 혼자 공부하다가 같이 공부하니 어색한 기분도 있고, 함께해서 더 재미있는 기분도 있고... 해서 다채로운 느낌인 것 같다. 이제 수료할 때까지 근 몇 달은 같이 공부하고 프로젝트를 하는 방식이니까 잘 적응해 봐야겠다. 오늘의 키워드 클래스 재설계 Github pull request 정보 클래스 재설계 기존에 설계했던 클래스는 Item 내부에서 각 음식에 대한 리스트를 관리하려고 했었다. 이렇게 되면 상속받은 음식에서 각자의 리스트를 갖고 주문을 하는 UI(order)에서 각 리스트를 합친 통합 클래스를 만들어 관리해야 하는데 이 구조가 비효율적이라 생각이 들어 UI(order)에서 List 형식으로 하여 한 번에 모든 음식을 관리할 수 있는 리스트를 만..

article thumbnail
내일배움캠프 7기 Android TIL 9일차 (2023.07.26)
내일배움캠프 7기/TIL 2023. 7. 26. 21:13

일일 회고 오전에는 병원에 갔다오느라 참여를 못하였다. 개인적인 사정을 포함해서 어떻게 해야 시간을 효율적으로 써야 할 지 고민해봐야겠다. 오늘의 키워드 Git & Github Git & Github 전략 무분별하게 commit, push, pull을 하다보면 언젠가 반드시 문제가 생기게 된다. 이러한 문제를 막기위해 git, github에도 전략을 실행 할 수 있다. git flow, github flow 등 여러 전략이 있는데, 오늘은 매니저님이 알려주신 전략을 정리한 것이다. main - dev에서 모든 코드 완성 후 완성본을 올리는 브랜치 dev - feature브랜치에서 각자 작업한 기능들을 올리는 브랜치 feature/XXX - XXX기능을 작성하는 브랜치 ex) 과정 도식화

article thumbnail
내일배움캠프 7기 Android TIL 8일차 (2023.07.25)
내일배움캠프 7기/TIL 2023. 7. 25. 21:02

일일 회고 협업하는 과정은 역시 쉽지가 않다. 그건 그렇고 너무 덥다... 몇 번을 졸은 지 모르겠다. 오늘의 키워드 클래스 설계 팀 과제 클래스 설계 키오스크 프로그래밍 팀과제 클래스 설계를 하고 작업에 들어갔다. Item이라는 인터페이스 공통 프로퍼티, 메소드를 두고 각 메뉴에 상속을 시켜 사용할 수 있도록 하였다. 그리고 UserInterface에서는 Item이라는 interface만 참조하여 어떠한 메뉴인지 알 필요 없도록 추상화하였다. 커밋 컨벤션 도입 문장의 끝에 . 를 붙이지 않기 작성 형식 - 타입: 내용 → 타입: **(한 칸 띄고)**내용 서술형은 지양 feat: 새로운 기능의 추가 fix: 버그 수정 docs: 문서 수정 style: 스타일 관련 기능 (코드 포맷팅, 세미콜론 누락, ..

내일배움캠프 7기 Android TIL 7일차 (2023.07.24)
내일배움캠프 7기/TIL 2023. 7. 24. 21:13

일일회고 첫 팀과제 시작이다. 팀 규칙부터 일정, 어떻게 개발할지, 설계는 어떻게 할지, 역할 분담을 어떻게 할지 등을 정하였다. 개인프로젝트와는 느낌이 많이 다른것 같다. 차근차근히 해나아가면 반드시 잘할 수 있을 거라 생각한다! 오늘의 키워드 소프트웨어 설계 소프트웨어 설계 1. 요구사항 정의 사용자의 관점에서 시스템의 요구사항을 정의 기능과 제약조건등을 소프트웨어 사용자와 함께 정의 제한 시간내에 구현이 가능한지 판단 2. 소프트웨어 설계 1단계에서 산출된 요구사항들을 설계 시스템을 구성하는 클래스, 모듈등 컴포넌트 간의 관계와 구조 설계 클래스, 모듈 내의 로직 설계 3. 구현 설계 완료 후 프로그래밍 언어를 사용하여 실제 프로그램을 작성 4. 테스트 구현한 프로그램이 요구사항을 만족하는지, 실행..

WIL 2주차
내일배움캠프 7기/WIL 2023. 7. 23. 16:52

Do : 본격적인 캠프 시작으로 처음은 안드로이드 프로그래밍에 있어 필요한 코틀린 기본 문법에 대해 학습을 하였다. 변수, 반복문부터 아주 기본적인 것부터 시작하여 코틀린의 유용한 기능인 확장함수, Scope function 등 다양한 내용을 학습하였다. 조금 더 심화로 객체지향 프로그래밍 방법론(상속, 오버라이드, 5대 원칙 등)을 배우며 프로그램을 객체지향적으로 설계하는 방법을 학습하였다. 추가적으로 코틀린의 비동기 프로그래밍인 Coroutine에 대해서도 학습을 진행하였다. 이번주의 키워드 Git & Github Kotlin 기본 객체지향 프로그래밍 기본 Git Trouble Shooting Kotlin Collection Kotlin Scope function Kotlin의 다양한 기능 async..

article thumbnail
내일배움캠프 7기 Android TIL 6일차 (2023.07.21)
내일배움캠프 7기/TIL 2023. 7. 21. 21:33

일일회고 과제를 마무리하는 날이자 일주일을 마무리하는 날이다. 첫 주차 과제는 객체지향의 원리가 들어간 계산기를 만들어 보는 과제였다. 요구사항이 주어지고 그에 맞게 프로그래밍을 하면 됐었다. 아직은 큰 무리 없이 할 수 있었다. 추가적으로 선택 심화 과제를 내어주셨는데 (호텔 예약 프로그램), 이건 아직 진행 중이다. 주 5일 12시간을 해보면서 느낀 점은 쉽지 않다는 것이었다. 긴 시간 몰입하는 것도 쉽지 않고, 오래 앉아있는 것도 쉽지가 않다 (더워서 더 그런 것 같다.) 하지만 마음먹고 하기로 했으니 체력관리를 잘하면서 나아가면 될 것 같다! 오늘의 키워드 객체지향 5대 원칙 (SOLID원칙) SOLID 원칙 SRP (Single Responsibilty Principle, 단일 책임 원칙) - ..

article thumbnail
내일배움캠프 7기 Android TIL 5일차 (2023.07.20)
내일배움캠프 7기/TIL 2023. 7. 20. 20:51

일일 회고 코틀린 비동기 프로그래밍의 꽃 Coroutine을 공부하는 날이다. 비동기 프로그래밍에 RxJava, RxKotlin, RxAndroid 등 Reactive 라이브러리가 있지만 (사실 공부해 본 적은 없다..ㅎ) Kotlin이 공식적으로 사용하고 구글이 권장하는 Coroutine이다. Coroutine을 공부하기 전 "비동기"에 대해 이해해야 하는데 간단하게 생각할 수 있지만 깊게 들어가면 OS 지식이 꽤 필요한 부분이다.. OS를 다시 한번 복습해보는 시간을 한번 가져야 될 것 같고, 이어서 Coroutine도 계속 학습해야 할 것 같다. (Coroutine 이론도 양이 상당? 한 것 같다.) + 선택심화과제를 진행 중이다. 확실히 기본과제보다는 어렵다. 오늘의 Keyword asyncrho..