묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
동시성 문제와 volitale의 연관성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요!현재 CAS연산 강의를 보고있습니다. 그러다가 문득 "volatile 키워드가 메모리 가시성 문제를 해결해 주지만 동시성 문제는 완벽하게(?) 해결해주지 못한다." 라는 이유에 대해서 곰곰히 생각해 보았는데 혹시 CPU 가 싱글코어와 멀티코어냐에 따라서 결과가 달라지는건지 궁금합니다. 이 이유가 아니라면, 왜 volatile키워드가 동시성 문제를 해결해주지 못하는지 알려주시면 감사하겠습니다!
-
미해결C# 윈폼_ 응용프로그램 개발
책이름 변경 버튼
private void btn5_Click(object sender, EventArgs e) { string bookNo = textBox4.Text; string bookName = textBox3.Text; using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = conn; sqlCommand.CommandText = "UPDATE BOOKS SET NAME = " + "'" + bookName + "'" + "WHERE BOOKNO = " + bookNo; sqlCommand.ExecuteNonQuery(); btn5_Click(null, null); } }코드로 작성하였습니다.해당 버튼이 눌린상태로 유지되다가 튕기는데 왜그러는지 알수있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
변경 감지를 통한 데이터 수정할 때 추가, 삭제는 어떻게 처리해야 할까요?
안녕하세요. 데이터 수정은 변경 감지로 처리하는게 적절한걸로 강의를 통해 이해했습니다.강의를 학습 후, 상품 정보를 수정하는 API를 개발하고 있습니다.상품 정보 업데이트를 진행할 때 옵션 목록과 같은 하위 데이터에 대해 추가, 삭제는 어떤식으로 로직을 처리해야 하는게 적절한지 판단이 안되어 질문 드립니다. 클라이언트에서 상품 정보 수정 API를 호출할 때, 생각한 프로세스는 아래와 같습니다.- 수정하는 옵션의 경우 ID와 변경되는 데이터를 필드에 담아서 보내줍니다.- 신규 옵션을 추가하는 경우에는 ID를 제외한 추가될 데이터를 필드에 담아서 보내줍니다.- 삭제하는 옵션은 필드에 담지않고, 수정/신규 옵션만 필드에 담아서 보내줍니다. 수정 API 개발할 때, 어떤식으로 처리하는게 좋은 방법인지 궁금하여 질문 드립니다.(수정 옵션) 상품 정보 업데이트 시 기존 옵션 데이터의 경우에는 ID로 데이터를 조회 후 변경 감지로 필요한 데이터만 수정하도록 했습니다.(추가 옵션) 신규 옵션 데이터는 ID 값이 없는걸 식별해서 추가하도록 로직을 짜는게 적절 할까요?(삭제 옵션) 기존 옵션 데이터를 삭제하고 싶습니다. 클라이언트에서 API로 옵션 정보를 넘겨주는데, 삭제되는 옵션은 넘어오지 않습니다. 이런 경우에는 ID가 식별되지 않아 변경 감지로 삭제할 수가 없을거 같은데 어떻게 해야할까요? (삭제는 soft delete 방식으로 처리해야 합니다.)삭제되는 ID 값을 deleteOptionIds 같은 필드로 따로 받아서 처리하는게 적절 할까요? 감사합니다.
-
미해결
axios로 react native 와 spring 연결 불가
안녕하세요. 현재 rn으로 안드로이드 어플을 만들고 있습니다. 저는 프런트 역할을 맡았습니다.spring과 연결을 확인하려고 정말 최소한의 값만 받아오려고 하는데요.현재 axios를 사용해서 아래 코드처럼 /demo 을 받아와서 결과값으로 배열이 프런트쪽에서 보여져야하는데,(.env 폴더 만들어서 API_URL=http://10.0.2.2:3105 로 설정 ip를 저걸로 설정한 이유는 에뮬레이터의 경우에 저 ip가 에러 없이 잘 연결된다고 해서 바꿨습니다.) useEffect(() => { axios .get(`${Config.API_URL}/demo`) .then(response => setHello(response.data)) .catch(error => console.log(error)); }, []); [AxiosError: Network Error] 라는 메시지만 콘솔에 뜹니다.그래서 spring말고 JSONPlaceholder - Free Fake REST API 에서 get에 user 유저 수를 받아왔을 때는 또 받아와지더라구요. 그래서 spring연결할 때는 또다른 환경설정을 해줘야하는지 axios를 저렇게 사용하면 안되고 다른 코드로 연결해야하는지가 궁금합니다. 현재 spring port번호도 3105로 변경해놨습니다.프런트에서도 실제 제 ip 번호도 바꿔보고 localhost로도 연결해봤지만 안됩니다.
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
강의 관련 질문 드립니다.
섹션 6 결제 까지 올라와 있고 그 이후 날짜에는 강의 파일이 없는데 이후에 추가로 올라오나요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
fpga4강 serial terminal
안녕하세요 🙂vitis 2024.1버전입니다.과거 버전과 다르게 vitis serial terminal이 존재하지 않고 찾아보니까 serial monitor라고 해서.. 하던데정확하게 새로운 버전에서는 어떻게 해야하는지 잘 모르겠습니다.serial terminal을 어디서 찾아야 하나요..위에 terminal창 누르면 serial terminal이 아닌 일반 창만 나옵니다 ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
통합테스트가 안되면 실행이 안된다는 뜻인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]CONDITIONS EVALUATION REPORT 라고 에러메시지가 뜨면서 서비스통합테스트가 뜨는데 그럴땐 어디를 봐야 하나요? 서비스테스트랑 코드문은 똑같습니다. plugins { id 'java' id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' } group = 'hhdplus' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' testImplementation 'org.springframework.boot:spring-boot-starter-test' runtimeOnly 'com.mysql:mysql-connector-j' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' } tasks.named('test') { useJUnitPlatform() }package hhdplus.hhplus_tdd2.service; import hhdplus.hhplus_tdd2.domain.reserve.Reserve; import hhdplus.hhplus_tdd2.domain.reserve.ReserveCommand; import hhdplus.hhplus_tdd2.domain.reserve.ReserveInfo; import hhdplus.hhplus_tdd2.domain.reserve.ReserveService; import hhdplus.hhplus_tdd2.infra.reserve.ReserveRepository; import hhdplus.hhplus_tdd2.interfaces.controller.ReserveRequest; import hhdplus.hhplus_tdd2.interfaces.controller.ReserveResponse; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.transaction.annotation.Transactional; import java.util.List; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @SpringBootTest //@ExtendWith(MockitoExtension.class) public class ReserveServiceIntergrationTest { @Autowired ReserveService reserveService; @Autowired ReserveRepository reserveRepository; ReserveRequest reserveRequest = new ReserveRequest(); ReserveResponse reserveResponse = new ReserveResponse(); Reserve reserve = new Reserve(); //동작하기 전에 넣어준다 BeforeEach // @BeforeEach // public void beforeEach() { // MockitoAnnotations.openMocks(this); // Mock 객체 초기화 // } // // @AfterEach //테스트 돌때마다 초기화 // public void afterEach() { // Mockito.reset(reserveRepository); // Mock 상태 초기화 // } @Test void 아이디별_예약_내역() { //given 뭔가가 주어졌는데 int userId = 1; ReserveInfo mockReserveInfo = new ReserveInfo(); mockReserveInfo.setId(1); mockReserveInfo.setUserId(userId); mockReserveInfo.setName("테스트 예약 정보"); List<ReserveInfo> mockReserveList = List.of(mockReserveInfo); // Mock 동작 설정 when(reserveService.findReservation(1)).thenReturn(mockReserveList); //when 이거를 실행했을 떄 List<ReserveInfo> result = reserveService.findReservation(userId); //then 결과가 이게 나와야 돼 if(result != null){ System.out.println("이름 : " + mockReserveInfo.getName()); } assertThat(result).isNotNull(); assertThat(result.size()).isEqualTo(1); assertThat(result.get(0).getUserId()).isEqualTo(userId); } @Test void 예약하기() {//40명이 예약 한다 쳐보면 30명만 예약이 되게끔 해보기 //given 뭔가가 주어졌는데 ReserveResponse reserveResponse = new ReserveResponse(); reserveResponse.setId(1); reserveResponse.setUserId(1); reserveResponse.setLectureId(1); //when 이거를 실행했을 떄 ReserveRequest findOne = reserveService.findOne(reserveResponse.getUserId()); findOne.setUserId(1); findOne.setLectureId(1); // Mock 동작 설정 when(reserveService.insertReservation(reserveResponse)).thenReturn(findOne); ReserveRequest result = reserveService.insertReservation(reserveResponse); //then 결과가 이게 나와야 돼 if(findOne != null){ System.out.println("findOne : " + reserveResponse.getLectureId()); } assertThat(reserveResponse.getLectureId()).isEqualTo(1); assertThat(result.getLectureId()).isEqualTo(1); } @Test void 예약수정() { //given 뭔가가 주어졌는데 ReserveCommand reserveCommand = new ReserveCommand(); reserveCommand.setLectureId(1); reserveCommand.setId(1); reserveCommand.setId(1); //when 이거를 실행했을 때 when(reserveService.modifyReservation(reserveCommand.getUserId())).thenReturn(reserveCommand); ReserveRequest findOne = reserveService.findOne(reserveCommand.getUserId()); //then 결과가 이게 나와야 돼 assertThat(findOne).isNotNull(); if(findOne != null){ System.out.println("findOne : " + reserveResponse.getLectureId()); } } @Test void 예약삭제() { //given 뭔가가 주어졌는데 ReserveResponse reserveResponse = new ReserveResponse(); reserveResponse.setId(1); reserveResponse.setUserId(1); reserveService.deleteReservation(reserveResponse.getId()); //when 이거를 실행했을 때 List<ReserveInfo> list = reserveService.findReservation(reserveResponse.getUserId()); //then 결과가 이게 나와야 돼 if(list.isEmpty()){ System.out.println("삭제 완료"); } assertThat(list.size()).isEqualTo(0); } }
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
springdoc이 무슨 설정인가요??
springdoc이 무슨 설정인가요??Swagger를 사용했을 때의 어떤 기본 설정같은건가요??
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
figma 관련 질문
figma ai - first draft 가 기능이 현재 안되던데 다른 ai 툴로 이용할 수 있는게 있을까요??
-
미해결장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
create view
안녕하세요 선생님. Create 구문을 작성했는데 선생님 자료와 달리 0row affected. 라고 나오며 데이터 결과가 없는 걸로 나옵니다. create에 커서를 대면 create is not vaild at this position, expection EOF, ";"라고 나오는데 이것과 관계가 있을까요? 아니면 제가 어떤 구문을 잘못 작성한 것일까요? 확인 부탁드리겠습니다.
-
미해결
[긴급] 수강확인서 발급 요청
수강확인서 발급 요청드리고자 메일을 남기게 되었습니다.인프런팀 휴가, 고객센터 마비로 메일로 요청드리게 되었습니다.수강증이 아닌 진도율, 교육기간 등이 포함된 수강확인서가 필요합니다이름 : 정인호이메일 : dlsgh251@naver.com강의 : AI 에이전트로 구현하는 RAG 시스템(w. LangGraph) 수신 이메일 : dlsgh251@naver.com
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
검색엔진에 대해서...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]검색 엔진이라는 용어를 잘 이해를 못 하겠습니다. 일시적인 리다이렉션 부분에서 "검색 엔진 등에서 URL을 변경하면 안됨"이라는 글이 있는데 구체적 예시를 들어서 이 문장을 설명해 주실 수 있을까요??
-
미해결Next + React Query로 SNS 서비스 만들기
vanilla extract는 UI 기능들이 없는거같은데
예를들어 부트스트랩처럼 모달이나 반응형 디자인 같은거를 편리하게 해주는 기능들이요 그냥 다 직접 만들어야 하나요?같이 쓸수있는게 있나요?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
질 좋은 답변을 생성하는 방법이 있을까요?
안녕하세요. 강의 잘 듣고 있습니다. 듣던 차에 궁금한 부분이 있어 질문 남깁니다. (현재 섹션3 강의는 다 들은 상태입니다.)저는 NLP나 RAG 관련해서 전공 공부한 적이 없고 모르는 개념은 강의를 들으면서 그때그때 검색해서 공부하고 있습니다! 저희 질문이 "연봉 5천만원인 직장인의 소득세는?" 인데, 질문을 할 때마다 답변이 다르게 나오는 건 알겠지만1400초과 ~ 5000만원 이하 과세표준으로 계산함1의 과세표준으로 계산했지만 계산 결과가 틀림1의 과세표준으로 계산했고 계산 결과가 맞지만 후에 부가적으로 기본공제, 지방소득세 등 이상한 내용이 들어가서 결과적인 직장인의 소득세가 매우 상이하게 나옴5000초과~ 8800만원 이하 과세표준으로 계산등 여러번 돌려보니까 다양한 결과가 나오더라구요. (LLM이니깐 매번 돌릴 때마다 결과가 다른 건 알고 있습니다!)현재 query 수정 (회사원 -> 거주자), markdown으로 표 수정은 이미 다 한 상태입니다.LLM은 외부 API를 (저는 Upstage로 하고 있습니다) 사용하기 때문에 LLM은 아예 저의 소관이 아니라고 생각하고, 저는 최대한 잘 자르고 유사도 검색을 잘 해서 prompt를 잘 쓰는 것까지 저의 일이라고 생각합니다. 아무튼 이러한 경우에는 제가 양질의 답변을 얻기 위해서는 추가적으로 어떤 걸 해야할까요? ㅠㅠ제가 생각했을 땐초과, 이하의 개념을 프롬포트로 제공한다retriever_docs를 검색할 때 추가적인 정보가 많이 제공되지 않게끔 k를 조절한다. 정도 생각하고 있습니다!
-
미해결
수강기한 연장
안녕하세요, 업무와 육아 병행하다 보니 수업을 다 듣지 못했는데요.좋은 강의 듣고 시험 합격을 위해 수강 기한 연장 부탁드립니다.강의를 끝까지 꼭 듣고 싶습니다.감사합니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
JSON Viewer 확장 프로그램
강의에 나오는 JSON 데이터를 한 눈에 보기 힘드신 분들은 아래 확장 프로그램을 통해 JSON 데이터를 시각적으로 구조화해서 좀 더 보기 좋게 확인하실 수 있습니다. JSON Viewerhttps://chromewebstore.google.com/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh
-
미해결
"최신 딥러닝 기술과 객체인식 " 강의 프레임워크
최근 딥러닝 기술과 객체인식 강의 프레임워크로 파이토치 활용하실까요~?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
index.css 와 App.css에 대해 질문있습니다.
안녕하세요 공부를 하다가 index.css 파일과 App.css 이 두개가 조금 헷갈리더라구요. 예를 들어 App.css도 폰트를 적용하면 전부다 적용이 되고 index.css도 똑같이 되는데 그럼 index.css는 어떤부분일때 작성이 되고 App.css는 어떤부분일 때 작성이 되는것인지 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
테스트 코드 수행 시 메세지 목록 내용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]테스트코드를 수행하였을때 Creating shared instance of singleton bean xxx 이런 메세지가 나오지 않습니다. 어떻게해야 이 메세지를 확인할 수 있는지 환경 설정과 같은 설정 내용을 안내해 주실 수 있을까요
-
미해결
main.c 가 나오지 않습니다
main.c가 나오지 않습니다. 어떤게 문제인가요?2024.09.12 일자에 작성된 내용과 동일한 증상인 것 같습니다.강사님께서 "압축을 해제한 폴더에 필요한 파일들이 다 있는 건지 한번 확인 해보실래요?"라는 댓글을 주셔서 위 내용으로 진행하면 해결이 됩니다.하지만 최종 코딩된 전체 소스코드가 포함된 것이 나옵니다.초기 셋팅이 되도록 main.c가 나오게 하는 방법은 무엇인가요~!