묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
static inner class 에 대해 궁금합니다
안녕하세요.DTO를 static inner class로 작성했을 때 멀티스레딩 환경에서 동시성 위험이 있는지에 대해 궁금합니다. 예를 들어 아래와 같이 DTO를 작성하고 사용한다고 했을 때public class UserDto { public static class Request1 { int id; String name; @Builder private Request1(int id, String name){ this.id = id; this.name = name; } } public static class Request2 { private final int id; private final String name; @Builder private Request2(int id, String name){ this.id = id; this.name = name; } } }우선 기본적으로 static inner class의 경우 outer 클래스의 인스턴스가 뜨지 않아도 inner 클래스의 인스턴스를 띄울 수 있습니다. 그래서 Builder 패턴을 통해 Request1의 인스턴스를 생성한다면, 롬복의 @Builder를 까보면 결국 public static class RequestBuilder 에서 Request 객체를 만들고 이를 반환하는 방식으로 되어 있는데 반환하고 RequestBuilder 객체는 GC에 반환된다고 들었습니다. 어쨌든 그래서 Request1의 객체가 생성되면 멤버 변수가 final이 아니기에 수정될 여지가 존재하는데, Heap 메모리에 새로운 객체가 생길것이고 Heap 메모리에 생성된 객체가 수정될 수 있다면 다른 스레드가 객체의 상태를 변경할 수 있으니 thread-safe 하지 않을 수 있겠다는 생각이 들었습니다. 만약 Request2처럼 멤버 변수들을 final로 사용한다면 thread-safe 해질 수 있지 않나 라는 생각인데 맞는 생각인지 잘 모르겠어서 질문 남깁니다. 감사합니다.
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
선생님 강의 문의 드릴 게 있는데요~!
API하고 TPC부터 스프2탄까지 이제 거의 다 들었습니다~사물인터넷 통신은 내 손에 << 강의를 수강하려고 하는데요~나온지 기간이 좀 지난터라 진행하는데 있어서 임베디드 관련 아무런 지식이 없는 사람은관련 프로그램 다운로드가 안된다거나 그런 상황이 생기면 대처가 어려울 거 같아서요지금 시점에 들어도 강의 따라 진행하는데 문제 없을까요?사물인터넷 강의도 질문드리면 답변 해주시나요~?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
서비스 로직 질문입니다.
안녕하세요, 강사님. loanBook() 서비스 로직 관련 질문입니다. 강의를 듣기 전 혼자 작성해보았는데요,Book book = bookRepository.findByName(request.getBookName()); if(book == null) { throw new IllegalArgumentException("대출할 책이 존재하지 않습니다."); } UserLoanHistory userLoanHistory = userLoanHistoryRepository.findByBookName(book.getName()); if(userLoanHistory.getBookName() == request.getBookName()) { throw new IllegalArgumentException("이미 대출된 책 입니다."); } userLoanHistoryRepository.save(new UserLoanHistory(request.getUserName(), request.getBookName()));위와 같이 작성해보았습니다. 제가 생각한 로직은책이 존재하는지 찾고존재한다면, 책 이름으로 대출 도메인에서 정보 가져와서대출 정보의 책 이름과 대출하려는 책 이름이 같으면 예외처리를 하고대출이 가능하면 UserLoanHistory 객체를 저장한다.입니다. 하지만 userLoanHistoryRepository.findByBookName(book.getName()) 이 부분에서 findByBookName 메소드가 실행되지 않는 것 같습니다.(레포지토리에는 작성해주었습니다.) 그 이유가 UserLoanHistory도메인과 Book도메인이 연결되지 않았기 때문일까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
침몰하는 타이타닉 시간 복잡도/반례
import sys sys.stdin = open("input.txt", "rt") n, m = map(int, input().split()) # n = 승객 수, m = 무게 제한 weight = list(map(int, input().split())) weight.sort() ans = 0 lt, rt = 0, n-1 while lt <= rt: if weight[lt] + weight[rt] <= m: ans += 1 lt += 1 rt -= 1 else: ans += 1 rt -= 1 print(ans)문제의 답안으로 작성한 코드인데 해당 코드의 반례가 있는지 궁금하고, 강의에 나온 정답 코드와 비교했을 때 시간복잡도면에서 불리한지 궁금합니다!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
로그인 회원가입 둘다 cors 오류가 뜹니다 ㅠㅠ 도대체 뭐가 문제일까요..
안녕하세요~ 그전까지 잘되다가 오랜만에 다시 강의를 이어가려고하는데 갑자기 안됩니다 ㅠㅠ 뭐가 문제일까요..회원가입시에도 페이지가 넘어가지않고 계속 CORS 오류가 생기네요.. https://github.com/nuring9/react-SWR-SlackClone_front제가 따라한 코드 깃허브 주소올립니다 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 타임리프에서 id= "quantitiy"랑 th:field= "*{quantity}랑 다른거아닌가요?? field가 id까지 대채가 되니까 두개 같다고 쓰신거같은데 field는 obejct받아서 item.quantity값이고 id는 문자 "quantitiy"그자체 잖아요?
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
PESSIMISTIC_WRITE 테스트 시 테스트 클래스 위 @Transactional
@Transactional @SpringBootTest class StockServiceTest { @Autowired private StockService stockService; @Autowired private PessimisticLockService pessimisticLockService; @Autowired private StockRepository stockRepository; @BeforeEach public void before() {안녕하세요 PESSIMISTIC_WRITE 예제처럼 테스트 시에 @Transactional을 붙이면 테스트가 첫 스레드풀 사이즈 만큼의 쿼리만 나가고 계속 대기 중입니다.혹시 원인을 알수 있을까요?
-
미해결C# 프로그래밍 기초
19:14 실행이 안되고 꺼집니다.
'ConsoleApp1.exe'(CLR v4.0.30319: DefaultDomain): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'을(를) 로드했습니다. 기호를 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다.'ConsoleApp1.exe'(CLR v4.0.30319: DefaultDomain): 'D:\임상훈\C# 프로그래밍 기초\실습\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe'을(를) 로드했습니다. 기호가 로드되었습니다.'[13256] ConsoleApp1.exe' 프로그램이 종료되었습니다(코드: 0 (0x0)).이게 아래 뜨는 거고요. using System;class Hello_World{ static void Main() { Console.WriteLine("Hello World"); }}쳤는데, 뜨다가 꺼지네요.F5로 눌렀고요.도와주세요.
-
미해결타입스크립트의 모든 것
as와 변수의 타입 지정 차이
안녕하세요. 단언하는 방법중에 제네릭보다 as를 더 많이 사용 하신다고 하셧는데 그러면 말씀하신 as로 하는것과 변수로 타입을 지정해서 사용하는것의 차이가 있을까요??interface IExam { value: number } const example: object = { value: 1 }; // 1. as console.log((example as IExam).value); // 2. 변수의 타입지정 interface IExam2 { value: number } const example2: IExam2 = { value: 1 }; console.log(example2.value)--방금 보충 봤습니다. 그런데 변수의 값에 as를 쓰면서 콘솔값에도 as를 쓰는 이유는 무엇인가요??
-
미해결C# 프로그래밍 기초
프레임워크 4.6.1이 없습니다.
4.6이랑 4.7.1이 있습니다.버전은 2019버전이고요.(유니티 강의 하면서 깔았습니다.) 상관 없나요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
MyBatis 적용시 오류가 납니다.
MyBatis 적용 2 에서 테스트 실행시 오류가 발생하여 질문드립니다. @Import(MyBatisConfig.class)를 적용한뒤 부터 빈을 찾을수없다고 뜹니다..Description:Parameter 0 of constructor in hello.itemservice.config.MyBatisConfig required a bean of type 'hello.itemservice.repository.mybatis.ItemMapper' that could not be found.Action:Consider defining a bean of type 'hello.itemservice.repository.mybatis.ItemMapper' in your configuration.2023-05-12 17:54:39.382 ERROR 1252 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@32f0fba8] to prepare test instance [hello.itemservice.domain.ItemRepositoryTest@2f521c4]이게 핵심 에러내용인것같은데, ItemMapper를 찾을수가 없다고 뜹니다.강의 소스 코드의 경우 MyBatis적용시 문제없이 진행되어서 더 헷갈리네요.. 도와주세요ㅜㅜ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
날짜 정렬 기능이 안됌
최신순 정렬이 되지 않아서 질문 드립니다. https://github.com/youngwoobae/EMOTION-DIARY 무슨 문제 일까요..?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
html 에서 컴포넌트 사용여부
이 강의에서 리액트가 쓰이는 이유가 html 에서 똑같이 반복되는 header 부분이나 footer 분들을 각 html 로 계속 똑같이 작성을 해서 나중에 수정을 해야 될 경우 샷건 수술을 안하고 컴포넌트 방식으로 작성을 해서 그 부분을 수정하면 모든 그 컴포넌트 방식을 사용하는 부분이 다 한번에 고쳐진다는 장점이 있다는걸 이해했습니다. 혹시 html 만 사용을 했을 경우 이런 컴포넌트 방식을 아에 구현이 불가능한건지 궁금합니다.
-
해결됨자바스크립트 : 기초부터 실전까지 올인원
Math 함수를 사용해봤는데. ... 은 무슨 의미일까요??
안녕하세요.5번 문제를 풀면서 검색을 하다가...연산자(??)를 이용하면 배열의 가장 작은 수를 알 수 있다고 하더라고요.이렇게해도 무방할까요??function findSmallestElement(arr){ if(arr.length != 0) { return Math.min(...arr); } else if(arr.length == 0) { return 0; } } console.log(findSmallestElement([12,50, 1, 4]))
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
백엔드서버 정적파일도 저장이 되는가요?
django_backend: volumes: - 기존소스:/var/www/html위와 같이 되어있을 때 기존소스에는 제가 만든 django소스가 있습니다.이걸 도커로 돌린다고 가정했을 때기존 소스 내에서버 업로드 기능이 있으면 어떻게 처리되는건가요?기존소스/media에는 빈폴더였는데/var/www/html/media에 파일이 업로드되면 기존소스/media에도 반영이 되는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
첨부자료 관련
"4회 기출유형(작업형1) " 에서 첨부 데이터 (basic1.csv 등)는 어디에서 찾아서 작업을 해야 하나요?
-
해결됨실전! Querydsl
BooleanBuilder를 활용한 괄호 묶기
안녕하세요! QueryDsl 수업을 잘 듣고, 실제 실무에서 활용을 하다가 조금 안되는 부분이 생겨 문의드리게 되었습니다.BooleanBuilder를 활용해서 동적 조건을 적용하고자 하였고 조건 중 and((AandB) or(CandD)) 라는 조건을 추가하기 위해 코드를 작성하였습니다.해당 부분은BooleanBuilder tempBuilder = new BooleanBuilder(); for (SiteStatus status: siteStatus) { if (status.equals(SiteStatus.SERVICE)) { tempBuilder.or(Expressions.predicate(Ops.WRAPPED, (serviceBillInfo.status.ne(BillStatus.DELETE).and(serviceBillInfo.billType.eq(BillType.TRIAL))))); } else if (status.equals(SiteStatus.PAID)) { tempBuilder.or(Expressions.predicate(Ops.WRAPPED, (serviceBillInfo.status.ne(BillStatus.DELETE).and(serviceBillInfo.billType.ne(BillType.TRIAL))))); } else { tempBuilder.or(Expressions.predicate(Ops.WRAPPED, (serviceBillInfo.status.eq(BillStatus.DELETE).or(serviceBillInfo.billType.isNull())))); } } builder.and(tempBuilder);위와 같은식으로 묶어서 처리하였고 디버깅을 통해서 builder라는 BooleanBuilder에 들어간 값을 String 형태로 보면 ((serviceBillInfo.status != DELETE && serviceBillInfo.billType = TRIAL) || (serviceBillInfo.status != DELETE && serviceBillInfo.billType != TRIAL) || (serviceBillInfo.status = DELETE || serviceBillInfo.billType is null))와 같이 제가 원하는 대로 builder 안에 값이 들어 있습니다.그런데 그 이후에 queryFactory에서 조건문 내부로 들어가면다음과 같이 쿼리문을 실행하게 됩니다. 해당 부분에 대해서 혹시 해결 방법이 있을까요???
-
미해결[LG유플러스] 앱 만들기 초급 과정 (Flutter)
asset 추가하기에서 pub get 메뉴 찾기
안녕하세요로고 이미지 추가 하였는데 pub get 메뉴가 보이지 않습니다. 좌측 상단에 main.dat에 빨간 엑스로 표시되는데 이것 때문일까요..?? 해결 방법 문의 드립니다.
-
해결됨Verilog FPGA Program 1 (Arty A7-35T)
안녕하세요 I2C Register 모듈에 대해서 질문이있습니다.
이 부분에서 reg_ren이 1일때 reg10에 저장된 값을 읽으려하는데 저의 생각에는 reg_ren값이 1이 되는 순간 reg_rdata값이 나올줄 알았는데 5ns뒤인 20ns뒤에 나오는걸 확인했습니다. 이런 타임딜레이는 하드웨어상 어쩔수없는 딜레이인가요?
-
미해결실리콘밸리 엔지니어와 함께하는 OpenAI API (ChatGPT)
api 불러오기에서 completion에서 에러가 뜹니다
api키 입력 부분은 보안상 ㅁㅁㅁㅁㅁ으로 적어놨습니다주신 코드로 돌려보면 response = openai.Completion.create( 부분에서 에러가 납니다.주피터노트북, 구글코랩, vs코드 모두 에러가 나네요.. openai도 pip으로 설치했는데 수업중에는 completion부분이 파랗게 표시가되는데 제 컴퓨터에서는 파랗게 표시도안되고 에러도 뜨는데 뭐가 문제일까요?