묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
[Retrofit 간단한 예제 변경 + RecyclerView 추가] 에 databinding 추가해 보았습니다.
안녕하세요, 좋은 강의 만들어 주셔서 감사합니다. [Retrofit 간단한 예제 변경 + RecyclerView 추가] 강의 말미에 말씀해주신대로 recyclerview에 databinding 을 추가해 보았습니다. (Android view에 대한 접근 강의 마지막 챕터 databinding + adapter 참고해서 )화면에 데이터가 나오긴 하는데 제대로 적용된것이 맞는지 궁금합니다. + 추가적으로, MainActivity에서 databinding이용해서 viewModel 데이터 결합을 해줘야 하는건지 궁금합니다. (아직 dataBinding 다른 라이브러리와 함께 사용할때 헷갈리는 부분이 많아서ㅠ )답변 주시면 감사하겠습니다. 변경된 부분은 1. text_row_itemCustomAdatperactivity_main.xmlMainActivitytext_row_item : : <layout> 감싸고 data class Post로 데이터 결합 <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="myData" type="com.example.a04withrecyclerview.model.Post" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/myText" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{myData.title}" android:textSize="20dp"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="******" /> </LinearLayout> </layout>CustomAdapterMyviewHolder dataBinding으로 수정class CustomAdapter(private val dataSet : ArrayList<Post>) : RecyclerView.Adapter<CustomAdapter.MyViewHolder>() { class MyViewHolder(binding : TextRowItemBinding) : RecyclerView.ViewHolder(binding.root){ val text : TextView = binding.myText } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { //val view = LayoutInflater.from(parent.context).inflate(R.layout.text_row_item, parent, false) val view = DataBindingUtil.inflate<TextRowItemBinding>(LayoutInflater.from(parent.context), R.layout.text_row_item, parent,false) return MyViewHolder(view) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { holder.text.text = dataSet[position].title } override fun getItemCount(): Int { return dataSet.size } }activty_main : <layout> 감싸기<layout> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"/> </androidx.constraintlayout.widget.ConstraintLayout> </layout>MainActivity: dataBinding 적용class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding private lateinit var viewModel : MyViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() binding = DataBindingUtil.setContentView(this, R.layout.activity_main) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } viewModel = ViewModelProvider(this).get(MyViewModel::class.java) viewModel.getPostAll() //val rv = findViewById<RecyclerView>(R.id.rv) viewModel.liveWordList.observe(this){ val customAdapter = CustomAdapter(it as ArrayList<Post>) binding.rv.adapter = customAdapter binding.rv.layoutManager = LinearLayoutManager(this) } } }
-
미해결김영한의 실전 자바 - 기본편
다형적 참조시에 생성자 호출 질문
Parent p = new Child(); 이런 형식으로 부모는 자식을 품을 수 있으니깐 저렇게 선언하면Child생성자도 호출이 되는 것 같더라고요. 메서드들은 오버라이딩이 된 것이 아닌 이상 자식 메서드를 사용할 수 없는데생성자는 생성시에는 자식도 호출이 된다고 생각해야하는걸까요?
-
해결됨김영한의 실전 자바 - 중급 1편
섹션 5. 문자열과 타입 안전성 1
마지막 return price * (discountPercent / 100); 이 무조건 0이 반환되는 이유가 뭔가요?예를들어 BASIC에 들어오면 discountPercent 에는 10의 값이 들어가고마지막에 price ( 10 / 100); 이 되는 거 아닌가요?ㅠㅠpublic int discount (String grade, int price) { int discountPercent = 0; if (grade.equals("BASIC")) { discountPercent = 10; } else if (grade.equals("GOLD")) { discountPercent = 20; } else if (grade.equals("DIAMOND")) { discountPercent = 30; } else { System.out.println(grade + "할인X"); } return price * (discountPercent / 100); }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
model.addAttribute시 질문!!
컨트롤러에서 model.addAtrtibute시 attributeName을 임의로 설정하면 왜 th:value="${attributeName.} ( 프로퍼티 접근) 시에 오류가 생기는건가요??attributeName을 어떤거랑 일치시켜야 하나요?!
-
미해결스트림릿(Streamlit)을 활용한 파이썬 웹앱 제작하기
오류 메시지 궁금 합니다.
이 오류 메시지는 왜 나오는걸까요??뷰티풀숲을 pip 구문으로 설치 했음에도 불구하고 계속 나오는데요 해결 방법을 알 수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
홀펀칭 질문도 괜찮을까요..?
안녕하세요, 루키스님유익한 강의 제공해주셔서 감사합니다항상 감사한 마음으로 수강하고 열심히 프로젝트를 진행해보고 있습니다.현재 프로젝트에서메인 서버에서는 모든 클라 게임 접속을 받고 로그인 및 방 입장 등을 관리합니다.클라가 게임룸을 생성하면 해당 클라에 Host라는 오브젝트가 생성되고, 해당 오브젝트는 서버 코드를 유니티에 호환되도록 수정을 거친 상황입니다.타 클라(로컬 네트워크 환경에서만 테스트 해보았습니다.)에서 방 목록에서 방을 선택하고 입장하면 중앙 서버에서가 호스트와 클라 사이에서 IP와 포트를 알려주는 중개 역할을 하며 두 클라이언트가 연결됩니다.해당 게임의 사이클이 끝나 게임이 종료되면, 클라이언트들은 로비로 돌아가며 1~3의 단계가 계속해서 반복됩니다.현재 프로젝트의 조건을 위와 같이 설정하였고,3번까지는 테스트를 완료했고, 정상적으로 동작하는 것을 확인했습니다. 하지만 4번에서 문제가 발생하는데,다시 방을 생성하면 클라와 호스트 사이에 패킷 전송이 되지 않는 것 같습니다.디버깅을 통해 확인해볼 때에는 호스트측의 OnConnected 메서드는 호출되는 것으로 보아서는 클라측에서 연결에 문제가 발생하는 것 같은데,구글링과 디버깅을 통해 여러가지 해결책을 시행해봤습니다.연결 종료 시 완전히 소켓이 종료되도록 세션 Disconnect()를 했습니다.소켓이 같은 주소의 포트 번호를 공유할 수 있도록 Connector와 Listener 코드의 소켓 설정 코드에Socket socket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);이렇게 ReuseAddress 설정을 추가했습니다.(중앙 서버 세션과 호스트 세션은 클라에서 개별적으로 다루고 있습니다)호스트 세션의 연결이 종료될 때, 호스트 세션의 _disconnected 변수를 다시 0으로 만들어,다음 연결 시 RegisterRecv등의 코드에서 if(_disconnected == 1) return;의 조건문에 걸리지 않도록 코드를 수정해보았습니다.2번의 방법을 시행해보기 전에는 '같은 주소의 포트를 사용할 수 없습니다?'와 같은 오류가 발생했었는데,2번을 시행한 뒤에는 오류는 발생하지 않지만 연결이 되지 않는 것은 마찬가지인 상태입니다.그 외에도 잡다하게 정말 많은 시도를 해보았는데,전혀 실마리가 보이지 않아 질문합니다..ㅠㅠ
-
해결됨김영한의 실전 자바 - 중급 1편
섹션 4. 문제와 풀이2
LotteGenerator 클래스에서private final Random random = new Random(); 에서이것만 final로 처리한 이유가 있을까요? import java.util.Random; public class LotteGenerator { private final Random random = new Random(); private int[] lotteNumbers; private int count; public int[] generate () { lotteNumbers = new int[6]; // 배열 6칸 생성 count = 0; while (count < 6) { // 1부터 45 사이의 숫자 생성 int number = random.nextInt(45) + 1; // number에 random 번호 넣기 // 중복되지 않는 경우에만 배열에 추가 if (isUnique(number)) { lotteNumbers[count] = number; count++; } } return lotteNumbers; } // 이미 생성된 번호와 중복되는지 검사 private boolean isUnique(int number) { for (int i = 0; i < count; i++) { if (lotteNumbers[i] == number) { return false; } } return true; } }
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
PN 내부에 있는 PC들의 인터넷 접근 관련 질문
안녕하세요~ 우선 질 좋은 강의에 감사인사드립니다! 다름이 아니라 VPN 강의 속에서 VPN Tunneling to GtoG 부분을 설명해주시면서 아래와 같은 그림을 작성해주셨고, 이 때 "PC A, B가 DB 서버에 접근이 가능하지만 PC A,B 는 외부 인터넷을 사용하지 못한다" 라고 하셨는데요!그런데 보통 회사(주로 사기업..)에서 일하다 보면 회사에서 오프라인으로 출근한 뒤(오프라인으로 출근했다 = 회사 내부 망을 이용), 회사의 내부 문서에서도 접근할 수 있게 되지만 그와 동시에 구글링도 보통 가능한데요!?(물론 회사에 따라 개인정보와 같은 매우 민감한 데이터들에 접근하기 위해서 VDI 같은 것들을 이용해서 더 깊은(?) 내부망으로 접근하면 해당 내부망에선 외부 인터넷이 안되긴 하더라구요)이러한 경우는 어떻게 네트워크를 구성한 건가요..? 대략적으로 구조만 알려주셔도 감사하겠습니다! 또 공공기관 같은 경우는 강의에서 말씀하신 것처럼 회사 내부 망을 이용할 때는 DB 서버에 접근할 수 있되 인터넷은 접근이 안된다는 것을 지인을 통해서 들었습니다. 이 2개의 케이스의 각 네트워크 구조에서 가장 큰 차이점이 무엇인지 설명 부탁드려도 될까요? 미리 감사드립니다 🙂
-
해결됨초보자를 위한 BigQuery(SQL) 입문
battle 테이블 형성할 때 제가 어떤 실수를 했을까요?
안녕하세요! 카일스쿨님!battle 테이블을 영상 그대로 만들었는데도, 계속 battle 테이블에 관한 데이터에 관한 정보를 볼 수가 없어요!빠진것 없이 최대한 꼼꼼히 다시 체크했는데도 모르겠습니다.혹시 제가 어떤 실수를 했을지 도와주실 수 있나요?아래는 스키마 정보와, 제가 테이블 만들때 과정을 이미지로 첨부했습니다.감사합니다.
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
프로토타입에서
프로토타입에서 시작 지점 정할 때저는 flows가 안 나옵니다 그 다음 단계인 flow starting point 메뉴도 없습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName() 메서드 실행시 오류
프로젝트 압축파일입니다.https://drive.google.com/file/d/1IRv3FX6UTERveIoq1KaZY7N_DyVLGv0b/view?usp=sharing<회원 리포지토리 테스트 케이스 작성> 강의 9:40 경에findByName() 메서드 실행시 java.util.NoSuchElementException: No value present at java.base/java.util.Optional.get(Optional.java:143) at hello.hellospring.repository.MemoryMemberRepositoryTest.findByName(MemoryMemberRepositoryTest.java:45) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)라는 오류가 발생합니다.이 오류로 인해 findAll() 메서드까지 실행이 되지 않는 것 같습니다. get()과 관련된 오류 같아 구글링해보아도 해결이 어려워 문의남깁니다.답변 부탁드립니다. 감사합니다.
-
해결됨
@Transactional을 붙이는 위치가 궁금합니다. (Service, ServiceImpl..)
회원 정보 수정 API를 구현하며 dirty checking을 이용한 회원 정보 update를 사용했습니다.service의 update 메소드를 호출하기 전과 후를 controller단에서 로그를 찍어보니 정보가 잘 변경되는데 DB에는 반영이 되지 않아 애를 먹었습니다.serviceImpl단의 update 메소드에 @Transactional을 붙여서 해결했습니다. 그 전에는 service단의 update 메소드에 @Transactional을 붙였더니 안되더라구요.service단의 메소드에 붙이는 @Transactional와 serviceImpl단의 메소드에 붙이는 @Transactional이 다른 트랜잭션으로 작동하는건지, 그렇다면 어디에 @Transactional을 붙이는게 맞는건지 궁금합니다.
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
USING 조인 질문드립니다.
안녕하세요 MySQL 사용하고있는데요조인하려는 테이블이 PK가 없는 단일 값인데요메인 select 절에 있는 컬럼이 pk 테이블에 있는 단일컬럼에 포함되는 값이 있는지regexp_like 함수로 확인하고싶은데요pk값이 없다보니 join 을 어떻게 할지.. 모르겠습니다using 으로 연결해보려 했는데 (natural join은 지원안됨) 컬럼절에 regexp_like (a.테이블 컬럼, pk 없는 테이블 컬럼) 이렇게 조건을 거니까 에러가 떠서요.. 방법이 있을까요? 요약 : left join으로 pk 테이블이 없는 단일 컬럼과 같다는 조건으로 연결 시, regexp_like 를 사용해도 똑같은 값만 불러오는 에러가 발생ex. pk 테이블이 없는 컬럼에 '사과' 라는 단어가 있다고 가정,'사과와당근' 이라는 메인 테이블의 컬럼값이 pk 테이블의 '사과' 단어가 매칭되는지 아래 조건으로 걸면 null 값으로 반환.regexp_like('사과와당근', pk 없는 테이블) - > '사과'가 포함되지만 조인조건 때문에 사과와 당근을 매칭해서 불러오지 못함.
-
미해결JSP 강의평가 웹 사이트 개발하기
No value specified for parameter 2 에러
/Hello World/WebConetnt/WEB-INF/lib/mysql-connector-j-8.3.0.jar 해당드라이버 lib 폴더에 넣고 실행하였는데No value specified for parameter 2 에러가 발생합니다. =====at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1077)at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1003)at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1312)at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:988)at user.UserDAO.join(UserDAO.java:17) ==== package user; import java.sql.Connection;import java.sql.PreparedStatement; import util.DatabaseUtil; public class UserDAO { public int join(String userID, String userPassword) {String SQL = "INSERT INTO USER VALUES (?,?)";try {Connection conn = DatabaseUtil.getConnection();PreparedStatement pstmt = conn.prepareStatement(SQL); // SQL에 ID와 PW를 넣어 줄 수 있도록 Settingpstmt.setString(1, userID);pstmt.setString(1, userPassword);return pstmt.executeUpdate(); // INSERT 구문을 실행해서 나온 결과를 반환하도록 해준다.// 반환값 : INSERT된 데이터 갯수} catch(Exception e){e.printStackTrace();}return -1;} }
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
Entity에 ElementCollection이 두 개 있는 경우
안녕하세요! 하나의 엔티티에 @ElementCollection 붙은 필드가 두 개 있는 경우를 시험해 보고 있습니다. @EntityGraph(attributePaths = {"a", "b"}) 이런 식으로 해서 테스트를 돌리면 org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags 과 같은 오류가 나는데 ElementCollection 두 개가 있는 경우는 하나의 쿼리로 모두 가져오는 방법은 없나요?
-
미해결
피그마 팀 생성
안녕하세요 피그마 Professional plan 으로 Design seat 4구좌로 결제를 했는데요팀 여러개를 만들어서 동일한 사용자들에게 edit 권한을 주면 추가 결제 안되나요? A팀1번~4번 Edit 권한 부여 B팀 1번~4번 Edit 권한 부여 C팀 1번~4번 Edit 권한 부여 한 팀에 4명에게만 Edit 권한 부여 가능한건지 궁금해서 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경 체험링크가 들어가지지 않습니다.!
시험환경 체험링크에서 코딩을 하려고 했는데.위사진처럼 링크를 들어가면 계속 저렇게 뜹니다. ㅠ 이럴땐 어떻게 해야될까요.?? (작업형1 모의고사 부분입니다)
-
미해결FreeRTOS 프로그래밍
라운드 로빈 강의 중 이해되지 않는 부분이 있습니다.
라운드 로빈은 선점형 스케줄링이라고 알고 있는데, 라운드 로빈이 비선점형 스케줄링만을 필요로 할 경우 최적이라는 것이 이해가 되지 않습니다.
-
해결됨Next + React Query로 SNS 서비스 만들기
"Validation failed (numeric string is expected)" 400 에러와 함께 유저 프로필 / 게시글을 불러오지 못합니다
해당 오류와 함께 유저 프로필 페이지 접속시 게시글을 불러오지 못합니다...!! 콘솔창에서는 해당 메시지와 함께 오류가 출력되는데 맨 밑에 d는 UserPosts.tsx 컴포넌트에서 찍어본 useQuery로 패칭한 데이터 찍어본것 입니다. getUserPosts.ts에서 받아온 res 값을 콘솔에 찍어봤습니다제로초님 코드와 동일한데 어떤 이유에선지 유저 프로필 페이지 게시글을 못불러오는지 잘 모르겠어서 낑낑대다가 질문 드렸습니다...ㅠㅠ 감사합니다
-
미해결웹 게임을 만들며 배우는 React에 TypeScript 적용하기
express response 타입
type JsonBody = { success: boolean; data: any; }; declare global { namespace Express { export interface Response { json: (body: JsonBody) => this; test: (body: JsonBody) => this; } } } export {};라이브러리 버전express 4.18.2@types/express 1.17.17 get, post 등 모든 요청에서 응답으로 res.status(200).json({success:true, data: []}) 이런 형식으로 코드 자동완성 기능 이용하려고 위와 같이 Express Response에 json 타입을 오버로딩 했는데 res.status(200).json 코드를 입력하면 오버로딩한 타입은 자동완성추천에 뜨지않고 express 자체에서 작성해둔 타입 json(body?: any): Response<any, Record<string, any>, number> 이런 타입만 뜹니다.json 아래에 작성한 test는 res.status(200).test 작성시 자동완성 추천도 잘되고 객체에 success랑 data 입력하게 자동완성 기능이 잘 동작하는데 json만 동작이 안됩니다. 어떻게하면 해결할 수 있을까요?