묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
assertThat이 보이지 않습니다. ㅠㅠ
안녕하세요? 강의 잘 듣고 있습니다.강의를 들으면서 진행하고 있는데, assertThat을 import 할 수가 없고, 대신 import org.junit.jupiter.api.Assertions.assertEquals 이런 식으로 assertEquals가 import 되는데 혹시 이유를 알 수 있을까요? ㅠㅠ gradle은 pdf에서 제공해주신 내용을 그대로 사용하고 있습니다.감사합니다!plugins { id 'org.springframework.boot' version '2.6.8' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'org.jetbrains.kotlin.jvm' version '1.6.21' } group = 'com.group' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } compileKotlin { kotlinOptions { jvmTarget = "11" } } compileTestKotlin { kotlinOptions { jvmTarget = "11" } }
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
if문 중복 안하는 방법
선생님이 알려주시는 대로 한번 코드를 작성하고,어떻게하면 조금 더 간편하고 읽기 쉬운 코드를 만들수있을까고민해 봤습니다. if문을 통한 것 보다 when절이 나을꺼같아 해봤는데 앱은 잘 작동하는데 이런식으로 써도 될지요~?? 남은 강의도 열심히 잘 들어볼께요! package com.example.twice import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.ImageView class ImageInsideActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_image_inside) val getData = intent.getStringExtra("data") val memberImage = findViewById<ImageView>(R.id.memberImageArea) when(getData){ "1" -> memberImage.setImageResource(R.drawable.member_1) "2" -> memberImage.setImageResource(R.drawable.member_2) "3" -> memberImage.setImageResource(R.drawable.member_3) "4" -> memberImage.setImageResource(R.drawable.member_4) "5" -> memberImage.setImageResource(R.drawable.member_5) "6" -> memberImage.setImageResource(R.drawable.member_6) "7" -> memberImage.setImageResource(R.drawable.member_7) "8" -> memberImage.setImageResource(R.drawable.member_8) "9" -> memberImage.setImageResource(R.drawable.member_9) } } }
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
안드로이드에서 아키텍처 패턴
안녕하세요. 강의 잘 듣고 있습니다.안드로이드 패턴에 대해서 몇 시간동안 듣고 검색도 해보면서 이해하는 중인데 어려움이 있어 질문을 드립니다. MVC에서 그림에서 이해가 안되는 부분이 있습니다. [1] 안드로이드에서 버튼은 결국 View가 가지고 있고 이벤트는 View에 있는 버튼을 눌러서 발생하기 시작할 것 같습니다. 그럼 뷰는 입력 받은 이벤트에 대해 컨트롤러에게 전달을 해줘야할 것이고 컨트롤러는 전달 받은 이벤트에 대한 작업을 수행하고 모델에 전달 후 모델의 변경을 다시 뷰에게 전달해주는 것인데 이런 생각으로 인풋은 뷰쪽으로뷰와 컨트롤러는 쌍방향 화살표가 되어야한다고 생각했습니다. [2] MVP에 경우에 View와 Model사이 간접적 화살표가 사라졌는데, MVP에 경우에도 프레젠트를 사이에 두고 모델에 데이터가 뷰쪽으로도 이동해야만 한다고 생각이 들고 그렇다면 간접적으로 이동하는 것은 똑같으니 MVC에서 M->V 점선 화살표가 유지되어야 하는 거 아닌가 하는 생각이 들었습니다. [3] MVP에서 프레젠트가 인터페이스를 통해 뷰와 모델을 거치게 되는데[MVC] V <-> C[MVP] V <-> Interface <-> Presenter한 단계를 추가해서 의존성 주입(관심사를 세분화)라고 이해해도 될까요? 혹시나 시간이 되신다면 설명 부탁드립니다.
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
안드로이드 테마 색상 오류
공부하는 프로젝트에 넣고 싶은 색상이 있는데 적용이 안됩니다. 테마를 Theme.Material3.DayNight.NoActionBar 이걸 적용중인데 회색으로 설정하면 연두색으로 나오면서 이상해서요 ㅠㅠㅠ 이거 해결 방법 없나요??ㅠㅠㅠㅠ Material3 이걸 바꾸면 머터리얼 디자인3가 자동으로 적용이 안되구요 ㅠㅠㅠ예를들면 #F0F0F0 컬러에 넣어두고 사용하면 연한 연두색으로 나옵니다
-
해결됨[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
Fragment 에서 다른 Activity로는 Navigation을 사용하지 않나요??
초반부를 보던 중, IntroActivity의 Fragment 사이의 이동에서는 main_nav의 action을 통해 fragment의 이동을 하는 것을 보았습니다.그런데 IntroFragment2에서 SelectActivity로 이동할 때는 Intent를 이용해 Activity를 전환하더군요. 저가 궁금한 것은 Activity1의 Fragment1에서 Activity2로 이동하고 싶은데, 이때는 Navigation을 사용하는 것이 아닌,Intent를 사용해야 하나요?즉, Acitivity 사이의 이동은 Intent만을 사용해야 하나요??
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
강의노트 내용
수업자료 파트에서 강의노트 파일을 받았는데 비어 있는 파일이라고 나옵니다.
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
kotlin first lambda에 관한 질문입니다.
안녕하세요 선생님 수업 잘 들었습니다. 질문이 있습니다.강의 == 13강9:20초 쯤에 returnBook을 작성하실때 fun returnBook(bookName: String) { this.userLoanHistories.first { it.bookName == bookName }.doReturn() }java 코드와는 다르게 orElseThrow()에 대한 구문이 없는데 생략해도 코틀린에서는 알아서 에러를 던져주는것인가요?
-
미해결[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
notification 문의드립니다.
안녕하세요. 강의듣던중 notification이 제대로 작동되지 않아서 문의드립니다.강의 내용과 동일하게 소스코드를 작성했는데 알림창 시작 버튼을 누르면 알림팝업이 나오지 않습니다.강의자료에 올라온 소스코드를 그대로 실행하면 알림팝업이 잘나오는데, 제 소스코드를 실행이 제대로 작동되지 않는 것으로 봐서 설정 문제인거 같은데 어디가 문제인지 모르겠습니다ㅠ확인부탁드립니다. 소스코드 https://drive.google.com/file/d/1TuCLiaHZ6Rkijb5X8z4wbqHEw3uTjHmK/view?usp=sharing
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
버튼이 클릭된 후 아이디를 판별하는 방법
안녕하세요제가 구성한 페이지는 이렇습니다.1번메인 페이지에 버튼이 다섯개 있다면 버튼을 클릭한 후 동작은 확인 버튼 한개 들어가 있는 팝업을 띄우는 것입니다. 여기서 팝업 메세지를 각 버튼에 따라 다르게 보여주려고 하는데요. 예를들면 1번을 클릭하면 팝업에 1번 버튼을 클릭하셨습니다. 를 띄우는 식입니다. 현재 데이터 바인딩으로 구현하여서binding.btn01.setOnClickListener {} 를 다섯개 작성하여 intent.putExtra에 값을 받아서 해주고 있습니다.binding.btn1.setOnClickListener { var intent = Intent(this, PopupActivity::class.java) intent.putExtra("txt", "1번") startActivity(intent) } binding.btn2.setOnClickListener { ... } binding.btn3.setOnClickListener { ... } ... 웹개발의 자바스크립트나 제이쿼리에서 사용되는 방법처럼 버튼이 클릭되면(클래스로 지정된 여러 요소중 하나를 클릭했을때 this.id 를 가져오는 식) id 를 읽어 클릭이후 내부에서 분기문을 작성해주는 방법은 없을까요? 2번제가 아직 4번째 앱밖에 안들어봐서 뒤에 나온다면 어떤 부분에서 나오는지도 알려주시면 감사하겠습니다
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
userRepository.deleAll()관련 질문이 있습니다.
안녕하세요 선생님 강의잘듣고 있습니다. 질문이 2개 있습니다.강의 == 9강 책관련기능 테스트 작성하기1) 10:27 에 userRepository.deleteAll 이 자식 테이블 까지 지워주는게 User의 userLoanHistories 필드에 cascade, orphanRemoval 때문에 지워주는게 아닌가요?2) 상황에 따라 다르겠지만 보통 @OneToMany에서는 cascade = CascadeType.ALL, orphanRemoval = true 를 해주는게 좋나요?All 만 해줘도 User를 지우면 UserLoanHistories도 지워주게 되는것이 아닌가요?
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
앱실행이 안되요.
섹션0, ‘안드로이드 살펴보기’에서 마지막에 앱을 실행할때 계속 에러가 뜨네요. 뭐가 문제인 걸까요? 참고로 안드로이드스튜디오 버전은 giraffe라고 쓰여있습니다. 그리고 다른 문제는 다운받은 avd중 하나가 계속 정지 버튼 눌러도 정지가 안되고 삭제도 안되요. 근데 이상태에서 다른 avd사용은 되더라고요. 어떻게 해야하죠?delet누르면 이렇게 떠요. 근데 running device 창에는 이 avd가 없거든요..
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
섹션 6 PushNotification 질문드립니다
여기서 변수명을 token 대신 to라고 했을 때 정상 작동하는 경우에는 왜 그런 것인지 궁금합니다!
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
안녕하세요. 갑자기 Admin 으로 이동되어서 질문드립니다.
안녕하세요. 강의 잘 듣고 있습니다. 이 전단계가 Thymeleaf 레이웃 리팩토링이었는데, 갑자기 admin 의 interceptor 로 넘어와서요. 파일이 전부 개발되 있는 상태인데 영상 그대로 따라해도 되는건가요..?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
protected, private 필드들의 getter...
선생님, 안녕하세요 10강 코틀린 상속 편 보다가 질문 드립니다.예제로 아래 JavaAnimail 클래스를 주셨고,public abstract class JavaAnimal { protected final String species; protected final int legCount; public JavaAnimal(String species, int legCount) { this.species = species; this.legCount = legCount; } abstract public void move(); public String getSpecies() { return species; } public int getLegCount() { return legCount; } }이와 동일한 코드로 아래 코틀린으로 변환했는데요,package com.lannstark.lec10; abstract class Animal( protected val species: String, protected val legCount: Int, ) { abstract fun move() } 위의 자바 코드는 getter들이 public 으로 열려있어서 외부에서 인스턴스 생성 시 cat.getSpecies(), cat.getLegCount()등이 호출되나, 아래 코틀린에서 자동생성되는 getter의 경우 protected로 cat.species, cat.legCount 에 대해 가시성이 없습니다. 그러면...클래스의 필드를 public으로 다 열고 a. val 는 더 이상 해줄 수 있는 것이 없음(어차피 생성자 초기화만 가능)class Animal2(val species: String, val legCount: Int)b. var는 private setter을 둔다.class Animal3(species: String, legCount: Int) { var species = species private set var legCount = legCount private set } 필드를 protected, private 으로 두고 별도의 public getter를 내부에 다시 만든다..(getter만 열 수도 없고, public으로 override도 안 되는 것 같습니다..!)class Animal4(species: String, legCount: Int) { private val species = species public get // ❌Getter visibilty 는 필드와 일치해야 함 override public get // ❌'override' is not applicable to 'getter' private val legCount = legCount fun getSpecies() = this.species; fun getLegCount() = this.legCount; } 😔...흠 어떻게 하는게 맞을까요.jpa 엔티티에서의 사용까지 생각하면 1-b가 가장 나을까요? 엔티티 필드들은 거의 var이기도 할테고요...자바에서 사용하는 스타일로 마음이 가장 안심(?)인 건 2번인데, 이렇게 하면 코틀린의 코드 간결성과 편리함을 엔티티 내부에서는 거의 사용하지 못하는 것 같아서 그나마 코틀린스럽게 코드를 사용할 수 있는 옵션이 1-b 인 것 같다고 생각했는데요...더 좋은 방법이 있는지... 어떻게 하는 것이 best practice인지, 또 선생님은 실무에서 어떻게 하시는지 궁금합니다!!
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
7강 retrofit 부분 서버 주소 질문드립니다.
주소에 접속해보니 아래와 같이 나오고 있습니다! retrofit 코드를 실행하였는데 제대로 작동하지 않아 로그를 찍어보았고 Log.e("실패","${response.errorBody()?.string()}")의 결과로 to가 Log에 찍혔습니다.또한 Log.e("실패","${response.code()}") 의 결과로 400이 나왔습니다! 서버 주소로 접속 시 저렇게 뜨는데 아래의 에러와 관련이 있을까요?
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 새 프로젝트 만들때
안녕하세요. 파이어 베이스 익명로그인 부분을 듣고 있습니다. 파이어베이스 들어가서 새 프로젝트 등록하려는데 강의내용과 좀 달라서( 3번째 부분이요) 뭘 선택해야 하는지, 어떤 값을 가져와서 프로젝트에 등록해야 하는지 잘 모르겠습니다...알려주실 수 있으실까요..?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 build.gradle쪽이 달라서 적용했더니 오류남
안녕하세요. 파이어베이스 세팅하는 중에 build.gradle이 달라서 수업자료에 있는 데로 작성한 후에 Sync now를 했더니 아래와 같은 오류가 생깁니다.A problem occurred configuring root project 'fb_login_test'.> Could not resolve all files for configuration ':classpath'. > Could not find com.google.gms.google-services:4.4.0:. Required by: project :Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html 작성한 부분 해결방법 없을까요....?ㅠㅠ
-
해결됨[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
cardStackAdapter 연결 문제
섹션1 - CardStackView 구현 에서 막히네욥 ㅠㅠ MainActivity 에서 마지막 줄 cardStackView.adapter = cardStackAdapter 코드추가 하면 에뮬실행이 안되서 해당로직 제거하고 에뮬 돌려봤어요. 그러면 잘 켜지는걸 보니 어댑터쪽 문제가 있는거같은데 원인을 못찾겠어요 ㅠㅠ https://github.com/Daseul727/Mobile-Skill-Up.git여기서 basic 폴더가 해당 소스코드입니다! 그리고 노션이 어디있는지 모르겠어서..노션 주소알수있을까요? 그리고 디버깅을 어떻게 하는지알수있을까요? 갑자기 앱이 안켜지는 현상으로는 원인찾기가 힘드네요 ㅠㅠ
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
null(!!)인지 null일수도 있는건지(?) 판단할수있는 기준이 어떻게 되는지 궁금합니다
안녕하세요 강사님앱강의 초반에는 멘탈도 많이 나가고 많이 헤맸는데 뒤로 갈수록 조금씩 이해가 되어가는것 같네요.. 다름이 아니라 코드를 따라 보면서 작성하다가 궁금해져서 질문을 드리는데요..?와 !!를 사용하고 안했을때 코드에서 빨간줄이 나오고 그러는데어떻게 판단하고 적용하시는건지 궁금합니다 사실.. 저걸 저때 왜 쓰는건지 그런게 이해가 잘 안되네요..ㅠ 아 그리고 RVAdapter를 MainActivity하고 BookmarkActivity에서 같이 사용되고 있는데 MainActivity에서는 context를 BookmarkActivity에서 context를 사용하면 왜 오류가 뜨고 this를 사용하는건지 궁금합니다..
-
미해결2시간으로 끝내는 코루틴
single thread에서 여러개의 co-routine ( 각각 서버연동을 수행 ) 을 순차적이 아닌 concurreny 하게 수행하게 할방법은 없나요?
single thread에서 여러개의 co-routine ( 각각 서버연동을 수행 ) 을 순차적이 아닌 concurreny 하게 수행하게 할방법은 없나요? 상황Single Thread ㄴ co-routine (1) : 서버연동 ( 사용자 정보를 요청 )ㄴ co-routine (2) : 서버연동 ( 회원등급 정보 요청) 테스트 결과co-routine (1)이 실행완료 -> co-routine(2) 수행 동시적으로 서버에 요청하지 않음 CoroutineScope(Dispatchers.Default)로 설정하여 각각 쓰레드를 생성하면 동시적으로 수행되나,이럴경우 co-routine을 사용해야 되는 의미가 필요한지 의문이 생김결국 multi thread가 발생했다는건 context swiching이 발생한다는 뜻인데. 오히려 이럴 바에는 co-routine을 사용하지 않고 multi thread만 사용해서 해당 코드를 수행하는것고 어떤 차이가 있는지잘 모르겠습니다.제 의문에 대한 명쾌한 대답을 듣고 싶습니다.