Kotlin/TIL

TIL (04.08)

내손은개발 🐾 2024. 4. 8. 21:27

CodeKata


 

 

[프로그래머스_Kotlin] 멀리 뛰기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 효

rlawog.tistory.com

 

 

 

팀 프로젝트 끝


피드백

- ListView를 프로젝트 제작 전에 구상해서 사용했으면 좋겠다는 피드백이 있었다.

이번 프로젝트에 제한으로 배우지 않은 기술은 쓰지 말 것. 이라 되어있지만 팀원 모두가 이해하고 사용할 수 있다면 사용해도 괜찮다는 조건이 걸려있었다.

-> 먼저 하드 코딩으로 진행했다가 너무 코드가 길어지고 지저분하다 생각이 들어서 ListView를 이해시켜 드리면 사용해도 괜찮지 않을까 해서 진행한 내용이었다. 팀원 개인의 실력은 알고 있었지만 조심스러워서 진행하지 못한 부분이기도 했다.

 

피드백 내용대로 미리 정했으면 번거로움이 없었을 것 같다.

 

팀원 한분한분 다들 너무 고생하셨다. 최고의 팀이였다.

 

 

 

오늘 공부한 Android


RecylerView

3주차 강의를 다시 들으면서 코드를 작성하며 정리하는 중인데 아직 다 하지 못했다.

내일 완료하고 정리까지 해서 올릴 예정

 

 

SingleTon

3주차 강의에서 알려주신 SingleTon 방식이다.

class DataSource {
    companion object {
        private var INSTANCE : DataSource?=null
        fun getDataSource(): DataSource {
            return synchronized(DataSource::class) {
                val newInstance = INSTANCE ?: DataSource()
                INSTANCE = newInstance
                newInstance
            }
        }
    }
    fun getItemList() : List<Item>{
        return ItemList()
    }
}

 

 

synchronized ?

  • 공유된 자원에 대한 동기화를 달성하기 위해 사용된다.
  • 일단, 위에 코드는 들어온 Data를 SingleTon으로 사용하려고 만든 코드이다.
  • 그렇다면, 여러 스레드가 동시에 접근하여 변경할 수있는 공유 자원에 대한 접근을 제어해야한다.
  • synchronized를 사용하면, 오직 하나의 스레드만 진입하여 작업을 수행할 수 있도록 한다.
  • 다른 스레드는 끝날 때까지 대기한다.

 

사용방법

synchronized(데이터){
	해당 부분에서 작업 수행
}

 

//MainActivity
val dataSource = DataSource.getDataSource().getDonutList()
donutAdapter.donutList = dataSource

 

 

 

 

 

'Kotlin > TIL' 카테고리의 다른 글

TIL (04.12)  (0) 2024.04.12
TIL (04.09)  (0) 2024.04.09
TIL (04.05)  (0) 2024.04.05
TIL (04.04)  (0) 2024.04.04
TIL (04.03)  (0) 2024.04.03