묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
1탄과 2탄 사이 변경된 코드 질문
안녕하세요! 지난 1탄 강의 잘 들었습니다.다름이 아니라 1탄과 2탄에서 go로 작성된 코드가 조금 다른거 같은데 혹시 누락된 강의가 있는걸까요 ?1탄에선 network 디렉토리에 network.go와 socket.go만 작성했었는데 2탄에선 server.go와 util.go가 생기면서 코드가 조금 변경된거 같습니다.누락된 강의가 없다면, 변경된 부분이 어떤 것들인지 알고싶어서 질문드립니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 조인 시 쿼리 궁금증
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용][1. 일대다 조인]em.createQuery("select m from Team t join t.members m" , Member.class).getResultList();Member이 N이고 Team이 1일 때 일대다 조인으로 JPQL 쿼리를 Member만 조회되게 작성하면 Member 뿐만 아니라 Team까지 동시에 조회되는 것을 확인할 수 있었습니다. [2. 다대일 조인]em.createQuery("select m from Member m join m.team t" , Member.class).getResultList(); em.createQuery("select t from Member m join m.team t" , Team.class).getResultList();위와 같이 다대일 조인에선 제가 원하던대로 Member 조회 시 Member에 대한 조회 쿼리만 나가고 Team 조회 시 Team에 대한 조회 쿼리만 나가는 것을 확인할 수 있었습니다. [핵심 질문]다대일로 조인할 때는 제가 지정한 객체만 조회되는 것을 알 수 있었습니다.왜 일대다로 조인할 때는 [1.일대다 조인] 처럼 Member 뿐만 아니라 Team 까지 덩달아 조회되는 건지 궁금합니다 !※ 테스트는 전부 지연 로딩으로 진행하였고, [1. 일대다 조인]에서의 결과는 즉시 로딩과 지연 로딩 상관 없이 같은 결과가 나왔습니다.※ 각 테스트 간 독립성 확보를 위해 em.flush() , em.clear()로 영속성 컨텍스트를 깨끗하게 하면서 진행하였습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
11:10 내용 질문입니다!
write로 html 코드를 넣는건 동적이고, html 파일 형식은 정적이라고 설명해주셨는데 두 방식 모두 코드를 동적으로 변경하고 애플리케이션을 다시 실행시켜 적용하는 방식아닌가요...? 잘 이해가 안되어서 질문드립니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 질문
이제 막 2유형 공부중인데, 궁금한점이 있습니다.2유형의 경우에는 답이 없는 문제인 것 같은데,시험에서 요구하는 제출형식(인덱스 제거, 파일명 맞추기 등)에서 감점되는 것 외에 감점요소가 있을까요? 2유형 만점을 목표로 하고 있는데, 최소로 확보해야하는 성능이라던지의 최소치? 등이 있는 문제인지가 궁금합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
cascade와 고아객체 질문있습니다.
@Entity @Getter @Setter public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToOne(mappedBy = "parent") private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } @Entity @Getter @Setter public class Child { @Id @GeneratedValue private Long id; private String name; @OneToOne @JoinColumn(name = "parent_id") private Parent parent; } 1. Parent와 child코드가 위와 같을 때 아래 코드에서 에러가 발생하는 이유는 양방향 매핑인데 child를 insert하지 않으니 Parent에 있는 child가 없는 것이 되므로 에러가 발생하는 것이 맞나요?Parent parent = new Parent(); Child child = new Child(); parent.addChild(child); em.persist(parent); ------------------------------------------------------------------------------- 2. mappedBy가 양방향 연관관계를 맺어주는 건데 단순히 아래와 같이 Parent에 있는 mappedBy를 없애면 단방향 연관관계로 바뀌는 건가요?(아래와 같이 단순히 mappedBy만 없앤 것과 child를 없앤것은 똑같이 단방향을 의미하게 되는 건가요?) public class Parent { @Id @GeneratedValue private Long id; private String name; // // mappedBy 만 없다면 이것도 child -> Parent 단방향이 되는 건가요? 아니라면 이 코드는 무슨 의미가 되는 코드인가요? @OneToOne private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } public class Parent { @Id @GeneratedValue private Long id; private String name; public void addChild(Child child) { this.child = child; child.setParent(this); } } -------------------------------------------------------------------------------@Entity @Getter @Setter public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToOne(mappedBy = "parent", fetch = FetchType.LAZY) private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } @Entity @Getter @Setter public class Child { @Id @GeneratedValue private Long id; private String name; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") private Parent parent; public void addChild(Child child) { this.child = child; child.setParent(this); } } 3. 위의 코드와 같이 Parent, Child에 둘 다 fetch = FetchType.LAZY를 안하면 아래코드 실행시 join이 발생하는데 왜 발생하는 건가요?(Parent를 조회하는 것이니 Child에 LAZY를 해주어서 child를 조회하지 않게 한다는 것은 이해가 되는데 왜 Parent에도 LAZY를 해주어야 하나요?Parent의 @OneToOne이 EAGER라고 해도 Parent 조회하는 것만 EAGER이니 Parent에는 LAZY를 안해도 되것 같은데 왜 LAZY를 해주어야 하는지 궁금합니다.)Parent parent = new Parent(); Child child = new Child(); parent.addChild(child); em.persist(parent); em.persist(child); em.flush(); em.clear(); Parent findParent = em.find(Parent.class, parent.getId()); ------------------------------------------------------------------------------- 4. 3번 질문 코드에서 em.find() 때 쿼리를 보면 select parent와 select child를 하는데 select child 쿼리는 왜 나가는 건가요? LAZY로 동작하지 않고 EAGER로 동작하는 것 같은데 왜 그런건가요? ------------------------------------------------------------------------------- @Entity @Getter @Setter public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToOne(mappedBy = "parent", fetch = FetchType.LAZY, cascade = CascadeType.ALL) private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } @Entity @Getter @Setter public class Child { @Id @GeneratedValue private Long id; private String name; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") private Parent parent; public void addChild(Child child) { this.child = child; child.setParent(this); } } 5. 강의에서와 같이 리스트인 child를 삭제하려면 findParent.getChildList().remove(0); 과 같이 하는데, @OneToOne의 경우에는 어떻게 하면 되나요? 아래와 같이 Parent의 child 값을 null로 만든 뒤에 remove를 하면 delete 쿼리가 나가는데 이렇게 하면 될까요? 혹시 다른 좋은 방법이 있을까요?Child child1 = findParent.getChild(); findParent.setChild(null); em.remove(child1); 그리고 아래 코드와 같이 하면 삭제가 왜 안되는 건가요?Parent findParent = em.find(Parent.class, parent.getId()); em.remove(child);
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
case when 구문의 활용(2) 부분 질문 있습니다.
4분 15초쯤 설명해주시는 구문이SELECT * FROM board WHERE title like '%te'||(CASE WHEN 1=1 THEN 's' ELSE 'n' END)||'t%' 인데 만약 환경이 오라클이 아니라 mysql 환경이였다고 해도 case when 구문 사용이 가능한가요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
안드로이드 스튜디오 게시글 이미지 업로드 유무
게시글을 올릴때 이미지를 업로드 하지 않으면, 안드로이드 스튜디오가 꺼집니다. 혹시 이미지를 업로드 하지 않아도 게시글을 작성하려면 코드를 어떻게 수정해야하나요? package com.example.healthcareapplication.fragments import android.app.Activity.RESULT_OK import android.content.Intent import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable import android.os.Bundle import android.provider.MediaStore import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.databinding.DataBindingUtil import androidx.navigation.fragment.findNavController import com.example.healthcareapplication.DATA.ContentData import com.example.healthcareapplication.DATA.ContentModel import com.example.healthcareapplication.R import com.example.healthcareapplication.databinding.FragmentCommunityWriteBinding import com.google.firebase.auth.FirebaseAuth import com.google.firebase.ktx.Firebase import com.google.firebase.storage.ktx.storage import java.io.ByteArrayOutputStream import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale class CommunityWriteFragment : Fragment() { private lateinit var binding: FragmentCommunityWriteBinding private lateinit var auth: FirebaseAuth override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { binding = DataBindingUtil.inflate(inflater, R.layout.fragment_community_write, container, false) val view = binding.root auth = FirebaseAuth.getInstance() binding.writeBtn.setOnClickListener { val title = binding.title.text.toString() val content = binding.content.text.toString() fetchContent(title, content) findNavController().navigate(R.id.action_communityWriteFragment_to_communityFragment) } binding.ImageBtn.setOnClickListener { val gallery = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI) startActivityForResult(gallery, 100) } return view } private fun fetchContent(title:String, content:String){ val userId = auth.currentUser?.uid ?: return val currentDateTime = Calendar.getInstance().time val dateFormat = SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA).format(currentDateTime) val key = ContentData.boardRef.push().key.toString() ContentData.boardRef .child(key) .setValue(ContentModel(title, content, userId, dateFormat)) Toast.makeText(requireContext(), "게시글 업로드 성공!", Toast.LENGTH_SHORT).show() ImageUpload(key) } private fun ImageUpload(key:String){ val storage = Firebase.storage val storageRef = storage.reference val mountainsRef = storageRef.child(key + ".png") val imageView = binding.imageArea // Get the data from an ImageView as bytes imageView.isDrawingCacheEnabled = true imageView.buildDrawingCache() val bitmap = (imageView.drawable as BitmapDrawable).bitmap val baos = ByteArrayOutputStream() bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos) val data = baos.toByteArray() var uploadTask = mountainsRef.putBytes(data) uploadTask.addOnFailureListener { // Handle unsuccessful uploads }.addOnSuccessListener { taskSnapshot -> // taskSnapshot.metadata contains file metadata such as size, content-type, etc. // ... } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if(resultCode == RESULT_OK && requestCode == 100){ val selectedImageUri = data?.data selectedImageUri?.let { uri -> binding.imageArea.setImageURI(uri) val layoutParams = binding.imageArea.layoutParams layoutParams.width = 300 // 원하는 너비 설정 layoutParams.height = 300 // 원하는 높이 설정 binding.imageArea.layoutParams = layoutParams } } } }
-
미해결처음 만나는 RPA 강의
2-1장_오늘의 날씨 검색하기 강의 내용과 강의 목소리가 맞지 않습니다.
2-1장_오늘의 날씨 검색하기1분 55초부터 ~ 강의 끝날때까지 말씀하시는 강의 내용과 화면의 내용이 맞지 않습니다. 처음 실습하는데 화면이 맞지 않아서 당혹 스럽습니다. 왜 그런거지요? 혹시 강의 속도로 1.3 배속으로 들어서 그런건가요?
-
해결됨실전! FastAPI 입문
No module named 'sqlalchemy'
sqlalchemy module이 설치되어있음에도 불구하고 위와 같이 서버를 실행시키면 no module named 'sqlalchemy' 라는 오류가 뜨는데 어떻게 해야하나요..+추가로 위의 문제를 해결하기 위해서 시도했던 방법으로,아래와 같이 flask_sqlalchemy를 통해서 sqlalchemy를 불러왔지만from flask_sqlalchemy import SQLAlchemy마찬가지로 flask_sqlalchemy에 대해서도 찾을 수 없다는 오류가 뜹니다..
-
미해결언리얼 엔진4 (Unreal Engine) 3D 횡스크롤 게임 만들기
exe 빌드할 시 컷씬 이후 화면 꺼짐
완성된 프로젝트 파일을 다운로드 받아 exe파일을 만들어 실행해보았는데, 컷씬 재생 이후 플레이어 체력 등 UI들만 출력되고 화면이 까맣게 되어 아무 것도 안보입니다. 어떻게 해결하나요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
비바도 zoom in/ 바닥 눈금 설정 질문 건
비바도에서 o_sec 도 볼수 있도록 zoom 하는 방법은 없을까요?그리고 아랫쪽의 노란색 눈금 나오게 할려면 어떻게 해야 할까요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
@Transactional 의존 관계 주입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Transactional에서는 스프링 컨테이너를 참조하기 사용되는 리소스들이 빈으로 등록되어야 하기 때문에 properties에 url, username, password를 입력해놓으면 스프링부트가 알아서 데이터소스를 빈으로 등록해줌을 알았습니다. 트랜잭션 매니저도 라이브러리에 등록된 정보를 바탕으로 JDBC트랜잭션 매니저 또는 JPA트랜잭션 매니저를 빈으로 등록해주는데 그렇다면 Test가 아니라 실제 코드에서 트랜잭션에 사용되는 리포지토리랑 서비스클래스에 @Repository랑 @Service를 사용해야 @Transactional을 사용할 수 있는지 궁금합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
외부 트랜잭션 롤백 시점
여러개의 내부 트랜잭션 중에 하나의 내부 트랜잭션에서 롤백 요청이 와도 나머지 로직이 모두 수행되고 외부트잭션이 커밋 요청을 하는 시점에 rollbackOnly 값을 체크하고 true인 것을 확인하고 물리 롤백을 한다는 말씀이신가요??
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
섹션 13의 5번째 강의(CustomUserDetails 구현하기) 질문입니다. !!
SecurityConfig 클래스에서 @Bean 으로 등록한 UserDetailsService 클래스는 http.userDetailsService(userDetailsService) 이런식으로 설정하지 않는데, 그 이유를 알 수 있을까요 ?? 커스텀하게 만든 UserDetailsService 즉, FormUserDetailsService 를 사용하기 위해서는 http.userDetailsService(userDetailsService) 이런식으로 설정을 해야된다고 강의에 설명되어 있었습니다. 근데, SecurityConfig 클래스에서 @Bean 으로 등록한 UserDetailsService 클래스도 걀국 우리가 직접 커스텀하게 만든것이지 않나요..? 그러면 이클래스도 http.userDetailsService(userDetailsService) 이런식으로 설정을 해야할거 같은데 안해도 정상적으로 작동하는 이유가 궁금합니다 !!
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
데이터셋을 여러개 보내는 경우도 있나요?
궁금한 부분이 생겼습니다!트랜잭션 처리할때 데이터셋을 여러개 같이 보내거나 받는 경우도 있을까요? 만약 그런 경우가있다면 어떤 상황에서 그런식으로 처리하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
랜포 모델로 파일을 제출하려 하는데 predict_proba를 사용하나요?
5-2 type2 문제 (에어비앤비 가격) 문제에서는 pred = model.predict(test) 를 사용하는데5-3 type3 문제 (심장마비 확률) 문제에서 랜덤포레스트를 사용할 경우에도 pred=model.predict_proba(test)를 사용하나요? 평가지표에 roc-auc가 있으면 무조건 pred=model.predict_proba(test)로 예측한 후 DF변환을 해야 하나요? 아님 다른 기준이 있나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
delegate wrapper 사용 이유
안녕하세요 좋은 강의 정말 감사드립니다.다름이 아니라 delegate wrapper 사용 이유가 궁금하여 질문 드립니다.선생님께서 delegate를 다수 배열로 관리하기 해야 하는데 이 자체를 인자로 쓸 수 없다고 하신 부분이 잘 이해가 되지가 않습니다. 어느 부분을 인자로 쓸 수 없는지에 대해 구체적으로 말씀해주실 수 있나요?FTakeItemDelegateWrapper 랩퍼 구조체가 아닌 FOnTakeItemDelegate 델리게이트를 TArray 배열에 넣을 수도 있고이런 식으로 바인드도 되고, 실행도 되는데 왜 델리게이트 랩퍼 구조체를 따로 만들어야하는지가 궁금합니다.
-
미해결견고한 결제 시스템 구축
토스 개발자센터 들어가서 토스에서 지원하는 키 제공을 안해주네요...
처음에 'API 개별 연동키' 값 통해 설정하게 되면'Error: [4000]: 인증되지 않은 시크릿 키 혹은 클라이언트 키 입니다.'에러가 발생되어서 영상에 나오는것 처럼'결제위젯 연동키' 키 값으로 할려고 하는데요. 문제는 '전자결제 신청하고 확인할 수 있어요' 라는 문구가 나오네요.신청하면 되지 않는가 할 수 있는데 사업자 번호도 입력 해야해서.. 어떻게 해야 할지 모르겠네요.저 같은 사람은 사업자 번호가 있을리가 없고요...ㅠㅜㅠ 어떻게 해야 하면 좋을까요..? 동시에 토스에게도 질문 했습니다...
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
현재 리뉴얼된 강의 커리큘럼이 맞는지 확인 부탁드려요
기존에 막힐 때마다 다시 보면서 공부하던, 네이버&구글 이미지 클롤링 섹션과 미쳐 보지 못했던 예약 감시 크롤링이 사라지고, 현재 지금의 커리큘럼으로 리뉴얼되었는데요. 섹션8과 9 그리고 10은 오픈 예정으로 닫혀있는 상태가 맞는 것인지 확인 부탁드려요. 언제쯤 오픈되는 건가요?그리고 기존의 강의는 사라진 건가요?
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
실습을 보고 2차변수를 추가하려는데 유료버전만 되는 거 같습니다.
이번 실습을 보고 2차 변수를 추가하려니까 무료 버전에서는 변수 모드 1개만 가능하다고 하네요.. 유료 결제를 해야만 해당 실습을 따라할 수 있을까요?