묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
프록시 초기화 안했는데 조회되는 경우가 있나요?
@GetMapping("/api/v2/orders") public List<OrderDto> ordersV2() { List<Order> orders = orderRepository.findAllByString(new OrderSearch()); return orders.stream() .map(order -> new OrderDto(order)) .collect(Collectors.toList()); } @Getter static class OrderDto { private Long orderId; private String name; private LocalDateTime orderDate; private Address address; private List<OrderItem> orderItems; public OrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); orderDate = order.getOrderDate(); address = order.getDelivery().getAddress(); orderItems = order.getOrderItems(); } }안녕하세요!강의 잘 듣고 있습니다~제가 OrderDto 안에 있는데 orderItem을 초기화 하지 않았는데, null로 반환되지 않고 db에 있는 값으로 반환이 되어서요..! (jpa 활용2편 강의 섹션 4에선 null로 찍힙니다)혹시 프록시는 초기화하지 않아도 그대로 값이 응답에 반영되는건가요?
-
미해결김영한의 실전 자바 - 기본편
while 문을 빠져나가기 위해 DafaultPay 객체를 참조하는 경우도 포함하려면
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]public class PayMain1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); PayService payService = new PayService(); while (true) { System.out.print("결제 수단을 입력하세요: "); String option1 = scanner.nextLine(); if (option1.equals("exit")) { System.out.println("프로그램을 빠져 나갑니다."); break; } if (option1.equals(new DefaultPay().toString())) { System.out.println("프로그램을 빠져 나갑니다."); break; } System.out.print("결제 금액을 입력하세요: "); int amount = scanner.nextInt(); scanner.nextLine(); payService.processPay(option1, amount); } } }위 while문을 빠져나가는 조건을 DefaultPay 객체를 참조했을 때도 추가하려고 하는데 어떻게 수정해야 할까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
이것저것 만지다가 안드로이드 스튜디오가 이렇게 되었는데요. 기본 레이아웃으로 어떻게 돌아가나요?
강의 내용과 안드리오드 스튜디오 레이아웃이 다른것 같아 질문드립니다.동일한 레이아웃으로 변경할려면 어떻게 해야 하나요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
창이 두개떠요/쇼핑검색도 안되요 ㅜ
#검색하기 search = browser.find_element(By.CSS_SELECTOR, "input._searchInput_search_text_3CUDs") search.click() search.send_keys("아이폰14")
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
/actuator/metrics 에서 names 값에 대한 질문
스프링 부트 버전 : 3.2.2JDK : 17 spring cloud gateway 를 사용하여127.0.0.1:8000/user-service/welcome, 127.0.0.1:8000/user-service/heath_check 주소를 호출했습니다.http://127.0.0.1:8000/user-service/actuator/prometheus 를 호출결과 중 일부입니다.# HELP http_server_requests_seconds # TYPE http_server_requests_seconds summary http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/heath_check",} 5.0 http_server_requests_seconds_sum{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/heath_check",} 0.020372399 http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 1.0 http_server_requests_seconds_sum{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 0.8039679 http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/health",} 1.0 http_server_requests_seconds_sum{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/health",} 0.0116107 http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/welcome",} 3.0 http_server_requests_seconds_sum{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/welcome",} 3.827017999 http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/metrics",} 8.0 http_server_requests_seconds_sum{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/metrics",} 0.039744298 http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="CLIENT_ERROR",status="404",uri="/**",} 1.0 http_server_requests_seconds_sum{error="none",exception="none",method="GET",outcome="CLIENT_ERROR",status="404",uri="/**",} 0.014729801 http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/info",} 1.0 http_server_requests_seconds_sum{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/info",} 0.090424499 # HELP http_server_requests_seconds_max # TYPE http_server_requests_seconds_max gauge http_server_requests_seconds_max{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/heath_check",} 0.003873199 http_server_requests_seconds_max{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 0.8039679 http_server_requests_seconds_max{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/health",} 0.0 http_server_requests_seconds_max{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/welcome",} 0.0 http_server_requests_seconds_max{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/metrics",} 0.0 http_server_requests_seconds_max{error="none",exception="none",method="GET",outcome="CLIENT_ERROR",status="404",uri="/**",} 0.0 http_server_requests_seconds_max{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/info",} 0.0http://localhost:8000/user-service/actuator/metrics 를 호출결과 names 배열값에강의화면과 다르게 users.welcome, users.status 값이 없습니다. pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-tracing-bridge-brave</artifactId> </dependency> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-reporter-brave</artifactId> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-micrometer</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.8.RELEASE</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> application.ymlmanagement: endpoints: web: exposure: include: refresh, health, beans, busrefresh, info, metrics, prometheus tracing: sampling: probability: 1.0 propagation: consume: b3 produce: b3 zipkin: tracing: endpoint: "http://localhost:9411/api/v2/spans" controller.javapackage com.example.userservice.controller; import com.example.userservice.dto.UserDto; import com.example.userservice.jpa.UserEntity; import com.example.userservice.service.UserService; import com.example.userservice.vo.Greeting; import com.example.userservice.vo.RequestUser; import com.example.userservice.vo.ResponseUser; import io.micrometer.core.annotation.Timed; import org.modelmapper.ModelMapper; import org.modelmapper.convention.MatchingStrategies; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @RestController public class UserController { private Environment env; private UserService userService; @Autowired private Greeting greeting; public UserController(Environment env, UserService userService) { this.env = env; this.userService = userService; } @GetMapping("/heath_check") @Timed(value = "users.status", longTask = true) public String status() { return String.format("It's Working in User Service " + ", port(local.server.port)=" + env.getProperty("local.server.port") + ", port(server.port)=" + env.getProperty("server.port") + ", port(token.secret)=" + env.getProperty("token.secret") + ", port(token.expiration_time)=" + env.getProperty("token.expiration_time") ); } @GetMapping("/welcome") @Timed(value = "users.welcome", longTask = true) public String welcome() { // return env.getProperty("greeting.message"); return greeting.getMessage(); } @PostMapping("/users") public ResponseEntity<ResponseUser> createUser(@RequestBody RequestUser user) { ModelMapper mapper = new ModelMapper(); mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); UserDto userDto = mapper.map(user, UserDto.class); userService.createUser(userDto); ResponseUser responseUser = mapper.map(userDto, ResponseUser.class); return ResponseEntity.status(HttpStatus.CREATED).body(responseUser); } @GetMapping("/users") public ResponseEntity<List<ResponseUser>> getUsers() { Iterable<UserEntity> userList = userService.getUserByAll(); List<ResponseUser> result = new ArrayList<>(); userList.forEach(v -> { result.add(new ModelMapper().map(v, ResponseUser.class)); }); return ResponseEntity.status(HttpStatus.OK).body(result); } @GetMapping("/users/{userId}") public ResponseEntity<ResponseUser> getUser(@PathVariable String userId) { UserDto userDto = userService.getUserById(userId); ResponseUser returnValue = new ModelMapper().map(userDto, ResponseUser.class); return ResponseEntity.status(HttpStatus.OK).body(returnValue); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
타입을 MemberRepository로 할때와 MemoryMemberRepository로 할때의 차이점이 뭔가요?
MemoryMemberRepository repository = new MemoryMemberRepository(); MemberRepository repository = new MemoryMemberRepository();두 타입으로 설정했을때의 차이가 알고싶어요.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
지금 수업자료 활용하는 방법 보고 있는데 커리큘럼과 노션 자료가 맞지 않는 거 같습니다.
프론트엔드코스 100% 활용하기 (수업자료,퀴즈,포트폴리오) 이 부분 듣고 있는데 커리큘럼과 수업자료 섹션이 일치한다고 하셨는데 일치 하지 않는 거 같습니다. 그냥 알아서 제목 보고 자료 보면 되는거죠? 위 이미지는 강의 커리큘럼 부분과 노션 자료 캡쳐한 것입니다!
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
구간합구하기1 (백준11659)
선생님이 강의하시는데로 코드쳤는데 마지막 샘플예시처럼5 5 입력하면 => 1 이 나와야하는데 -14 가 나와버리네요코드가 동일한데 왜 결과가 다를까요 ㅠ이래는 작성한 코드입니다 public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine()); int suNo = Integer.parseInt(stringTokenizer.nextToken());// 숫자의 개수 int quizNo = Integer.parseInt(stringTokenizer.nextToken());//질의개수 long [] s = new long[suNo+1]; //합배열 선언 stringTokenizer = new StringTokenizer(bufferedReader.readLine()); //한줄로 쭉 받아올때 stringTokenizer 사용 for(int i=1; i<=suNo; i++){ s[i] = s[i-1]+Integer.parseInt(stringTokenizer.nextToken()); } for(int i=0 ; i<s.length;i++) { System.out.print("s:"+s[i]+" "); } for(int q=0; q<quizNo; q++){ stringTokenizer = new StringTokenizer(bufferedReader.readLine()); int i = Integer.parseInt(stringTokenizer.nextToken()); int j = Integer.parseInt(stringTokenizer.nextToken()); System.out.println(s[j] - s[i-1]); } }
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
챕터7 퀴즈 질문입니다.
하나의 파일에 퍼블릭 클래스가 하나만 존재해야 하는것 은 이해를 했는데 강의와 똑같이 코드를 작성해도 저런 오류가 뜹니다.메인함수에서 스태틱을 지우거나 햄버거 클래스들을 스태틱으로 바꾸면 오류는 해결이 되는데 . 선생님은 왜 오류가 안나는 것인가요??
-
미해결스프링 시큐리티 OAuth2
2024-2-20일 기준 인텔리제이에서 모듈 설정하는 방법입니다.
혼자 삽질을 많이 해서 다른 분들은 혈압이 오르지 않기를 바라는 마음으로 정리한 글을 공유합니다.https://literate-t.tistory.com/433
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
true, false 질문
단순 값에 의한 처리는 값이 일단 넘어오긴 하니까, bindingFailure 값을 false로 둔 것이고, 타입에 대한 처리는 내부에서 bindingFailure 값이 true로 전달된다고 이해하면 될까요? 이 타입에 대한 처리 코드는 따로 작성할 필요는 없는 건가요? (bindingFailure가 true인)
-
미해결오쌤의 캐드기초강의 (CAD)
좌표 관련 문제사항
L 명령어 후 4,3까지 실행 가능하나 9,3을 입력 후 선의 모양이 직선이 아닌 대각선으로 바뀌는 이유는 무엇 때문인지 알수 있을 까요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
파일럿 프로젝트 pc 환경 구성 질문입니다.
혹시 docker를 활용해서 실습환경을 구축하여도 문제가 있을까요?
-
미해결
SpringBoot에서 Http 요청을 Https로 리다이렉트 할때 POST요청이 GET으로 됩니다.
백엔드 서버를 HTTPS로 설정하고 검색하면 흔히 있는 http요청도 https로 넘어가게 끔 스프링 bean으로등록 하였습니다 . 하지만 postman에서 http로 post 요청시 , GET으로 되어 Request method 'GET' not supported 에러가 발생합니다 . 아래는 제가 bean에 등록한 리다이렉트 코드입니다.* postman에서, Https 요청시 post로 하면 제대로 작동합니다.@Configuration public class WebConfig { @Bean public ServletWebServerFactory serveltContainer(){ TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(){ @Override protected void postProcessContext(Context context) { SecurityConstraint securityConstraint = new SecurityConstraint(); securityConstraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/*"); securityConstraint.addCollection(collection); context.addConstraint(securityConstraint); } }; tomcat.addAdditionalTomcatConnectors(createStandardConnector()); return tomcat; } private Connector createStandardConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setSecure(false); connector.setPort(9099); connector.setRedirectPort(8088); return connector; } }
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
메인 메소드의 전달인자로는 String[] args 만 사용하는 이유가 뭔가요?
main 메소드는 public void main(String[] args) {처럼 괄호 안에 String[] args만 사용해야 하나요?String 말고 Int 나 Double 등 다른 자료형을 사용하면 무슨 문제가 있나요?
-
미해결스프링 핵심 원리 - 기본편
프로젝트 오픈방법 질문
프로젝트 오픈시, build.gradle을 선택해서 여시는데 그러는 이유가 있는건가요?그냥 core폴더를 선택해서 여는 것이랑 차이가 있는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 듣고 있는데 오류가 있어 남깁니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.현재 실행이 안되고 있는 상태입니다. 무슨 문제인지 알고 싶습니다 ㅜㅜ구글 드라이브 링크입니다.https://drive.google.com/drive/folders/15MQr82y4Qdcm4Cs7dZItZMa7rG_fJevw?usp=sharing
-
미해결달리(DALL-E): 이미지 생성 가이드 (블로그편)
5. 이미지 시드번호번호 관련
시드번호를 gpt에 물어보지 않고, 생성된 이미지 자체적으로 알순 없나요?반드시 시드번호를 알기 위해 gpt에게 물어봐야하는지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
[해결(?)] createUploadlink가 없다고 뜰때,
일단 계속 써봐야 할것 같은데, 저 같은 경우 import createUploadLink from "apollo-upload-client/createUploadLink.mjs";이렇게 설정해두니까 error는 뜨지 않았습니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
@Transactional(isolation = Isolation.SERIALIZABLE)
@Transactional(isolation = Isolation.SERIALIZABLE) 이렇게 해도 동시성 제어 테스트에 실패해서 검색해보니까 SERIALIZABLE 격리 단계는 락이 걸려 있는 동안 update를 못하는거지 select는 가능하다 라는 식의 글을 봤습니다. 그러면 각 스레드들이 접근해서 select만 한 상태에서 대기하고 있다가 락이 풀리면 update를 시도하는 건가요? 그래서 테스트에 실패하는 건가요?