묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
1강 환경변수 설정 보고 하고있는데.. 오류 발생
window 10 입니다.Error: could not open `C:\Program Files\Java\jre1.8.0_361\lib\amd64\jvm.cfg'이렇게 나오네요. 1.8.0.361가 강의 듣기 전 설치했던건데..설정이 꼬인건지 봐주실수있나요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
url 패스 관련 질문
다른 질문을 봤을 때url : localhost:8080/abc/def?param1=data1¶m2=data2위와 같이 경로를 지정하고 싶으면 변수를 추가해야 한다고 봤습니다.@GetMapping("link")public String link(Model model) {model.addAttribute("param1", "data1");model.addAttribute("param2", "data2");model.addAttribute("url1", "abc");model.addAttribute("url2", "def");return "basic/link";}위에서와 같이 모델에 값을 새로 추가해주고<li><a th:href="@{/hello/{url1}/{url2}(url1=${url1}, url2=${url2}, param1=${param1}, param2=${param2})}">위와 같이 html에서 값을 넣는 방식이 결과적으론 원하는 값이 출력되긴 했지만 Q.1) () 안에서 변수와 같은 값이 있다면 해당 변수에 대 값을 대입하는 것으로 사용되는 것이고, 없다면 parameter값으로 사용되는 것인지 궁금합니다.Q.2 ) 이렇게 사용하는 것이 맞는지와 실제로도 실무에서 이렇게 사용하는지 빈도가 높은지 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
한글, 한국 기준으로 나오는 이유
유틸리티 객체와 날짜 강의에서 temporals를 사용해서 날짜와 시간들을 찍어보았는데요. 신기하게도 한국 기준으로 한글로 나오더라구요. 어떻게해서 이렇게 나오는건가요? 만약 다른 나라 기준으로 찍고 싶다면 어떻게 해야하나요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
수행 시간 비교 관련 질문
안녕하세요 좋은 강의 해주셔서 감사합니다.강의를 전부 듣고 각 방식의 성능이 궁금하여 이를 찍어보았는데 조금 의아한 결과가 나와서 질문 드립니다.동시성 처리 안한 버전 256 mssynchronized 버전 962 ms비관적락 468 ms낙관적락 1441 msNamedLock 807 msLettuceLock 4184 msRedissonLock 1137 ms 몇번씩 테스트해본 결과 대략 위와 같은 정도의 성능이 나옵니다. 처음 생각하기로는 Redis 사용 방식이 비교적 빠를것이고, DB에 락을 거는 방식이 Redis에 비해 느리지 않을까 했는데 오히려 반대로 DB에 락을 거는게 빠르고 Redis를 사용하는 방식이 느린것을 확인할 수 있었습니다. 혹시 이러한 결과가 나오게 된 이유를 여쭤볼 수 있을까요? 감사합니다.
-
해결됨Java/Spring 주니어 개발자를 위한 오답노트
테스트 하기 쉬운 코드에서 테스트의 범위?
영상에서 종종 "테스트 하기 좋은 코드는 잘 설계된 코드일 것이다." 라는 말을 해주셨습니다. 어떤 테스트를 기준으로 테스트 하기 좋은 코드가 잘 설계된 코드일까요?- 예를 들어 단위 테스트, 통합 테스트, 인수 테스트가 존재한다 하면, 세가지 테스트 중 어떤 테스트를 테스트하기 편한 코드를 기준으로 잡는게 좋을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC 2편에 대해 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿][질문 내용] MVC 2편에 쿠키와 세션에 관해 다루는 부분이 있더라고요.질문 1)통상적으로 로그인할때 이 방법을 사용한다고 보면 되나요?질문 2)요즘 보니까 OAuth 인가 그것을 로그인할때 사용한다 그러던데 강의 구매하고 들으면 이해하는데 도움이 될까요??질문 3)그리고 여러 open api 들이 많지 않습니까?실제 개발할때 open api를 사용하는 주체가 프론트 쪽인가요, 아니면 벡엔드 쪽에서 json 형식으로 데이터를 받아서 가공해서 프론트한테 넘겨주는 방식인가요?
-
해결됨Java/Spring 주니어 개발자를 위한 오답노트
스프링에서 서비스 레이어(Apllication Layer) 테스트에 대한 질문입니다.
제 개인 프로젝트를 진행하면서, 서비스 레이어에서는 단순히, 도메인 레이어에 존재하는 다른 객체들을 호출해서 비즈니스 로직을 처리하는 책임만을 담당하다보니, 서비스 레이어에 존재하는 객체를 테스트하는 코드를 작성하게 되면 대부분 테스트할 내용이, 메소드의 실행순서를 올바르게 실행해줬는가? 와 같은 부분만 테스트할게 없었는데 이 부분이 제가 잘못 설계한 부분이 아닌 오히려, 객체간의 책임을 잘 나누고 서비스 레이어의 책임에 맞게 코드를 작성한것 같다는 확신을 강의를 보고나서 알수 있었습니다 좋은 강의 감사합니다😊
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
Java 설정 방식에서
안녕하세요.JAVA 설정 방식에서 아래와 같이 의존성을 주가하거나<dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.4</version></dependency>WEB-INF/lib/폴더에 ojdbc6.jkar 파일을 직접 넣어서build path 에서 설정하고 해도모두 아래와 같은 오류가 발생합니다.SEVERE: 경로 [/MyBatisJava]의 컨텍스트 내의 서블릿 [dispatcher]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Cannot load JDBC driver class '${db.classname}xml 방식의 설정에서는 똑같이 설정했는대도 (설정과 소스 파일 모두 Java 설정 방식에서와 똑같이 작성했습니다.) 잘 됩니다.어떻게 하면 JAVA 설정 방식에서도 정상적으로 DB 연결이 이루어질 수 있는지요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
같은 커넥션을 유지해야 한다 - 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]"같은 커넥션을 유지해야 한다" 라는 말이 잘 이해가 가지 않았습니다.트랜잭션 2개가 각각 시작되더라도 -> 문제 되는 트랜잭션을 각각 롤백해주면 되는거 아닌가? 라고 생각했습니다. <1> 그런데 예제 코드를 보면 connection.rollabck() 가 사용되고 있고 (아래 스크린샷 첨부)-> 이는 즉 비지니스 로직 전에 열린 "하나의 커넥션" 에서만 문제가 생겼을 경우에 - 그 트랜잭션만 롤백이 가능하다 - 로 이해가 되었습니다. 즉, 유지가 되는 하나의 트랜잭션 이후에 다른 트랜잭션은 롤백이 되지 않는다 (적어도 코드상으로는) 그렇기 때문에 하나의 커넥션을 유지하면서 - 그 커넥션에 의한 트랜잭션으로 비지니스 로직을 묶어야 한다로 일단 이해하였습니다 (적어도 코드적으로) <2> 또한 논리적으로 생각을 해 보아도, 작업의 단위를 "하나의 트랜잭션으로 묶어야" -> h2 데이터베이스로 실습을 한 것처럼, 문제가 생겼을 때 전부 롤백이 가능하므로 -> 하나의 트랜잭션으로 묶기 위해 , 그 하나의 커넥션만을 유지해야 한다 로 이해하였습니다. 제가 맞게 이해한 건지 , 놓친 부분은 없는지 확인 부탁드립니다. 항상 좋은 강의, 상세한 질문 답변 감사드립니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
커넥션 풀은 주기적으로 다시 실행되나요?
안녕하세요 강의를 보고 2탄에있는 Mybatis ORM을 이용하여 개발을 해보는데 커넥션풀이 기본 10개가 뜨는데 뭔가 주기적으로 계속 닫혔다 열렸다( 10개씩) 반복되더라구요. 정상인건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
default method 구현부가 어디 있는지 궁금합니다.
자바 8 기본 문법에 관한 거라서 질문하기 꺼려지긴 합니다만, 달리 질문할 데가 없어서 질문드립니다.강의에서 Filter, HandleInterceptor 인터페이스를 구현함으로 서블릿 필터와 스프링 인터셉터 기능을 사용할 수 있음을 배웠는데요. 각 인터페이스의 default method들은 이미 구현이 되어 있기 때문에 따로 구현을 해주지 않아도 되는 건 이미 알고 있었습니다.근데, 제가 알기로는 인터페이스의 default 키워드를 붙이려면 구현부가 꼭 있어야 하는 걸로 아는데, 해당 인터페이스들의 소스 코드를 까보면 구현부는 따로 없는 것 같습니다. 구현부는 대체 어디 있는 걸까요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
통합, 인수 테스트 사전 데이터 세팅 질문
안녕하세요 강의 잘 보고 있습니다.테스트에 대해 파편화 된 지식을 학습자들이 원하는 내용으로 잘 만들어 낸 좋은 강의라고 생각합니다. 현재 저희 팀음 통합 테스트 및 인수 테스트를 할 때 미리 쿼리문을 작성해두고 이를 @SqlGroup과 @Sql을 활용하여 데이터를 삽입해주고 있습니다.이 경우 강의 내에서 말씀하신 것 처럼 스키마 변경이 생길때마다 모든 쿼리를 찾아 수정해야하는 번거로움이 있습니다. 하지만 매 케이스마다 세팅을 하기에는 연관된 5개~10개의 테이블에 대한 데이터 수십개를 매번 세팅해줘야 하는 것이 어렵게 느껴집니다.이때 repository를 계층을 넘어서까지 임포트 해서 사전 데이터 삽입을 해줘야 하는가 궁금하구요.또한 모든 객체에 Builder를 개방하면 그나마 할만하겠지만 아닌 경우 객체가 제공하는 제한적으로만 생성이 가능할텐데, 리플렉션이라도 써야하는건지 너무 걸리는 경우가 많습니다. 다소 두서 없고 여러 질문을 한번에 했지만 제가 어떤 어려움을 겪는지는 전달 되었으리라 생각합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
상품종류와 지역 방식 차이
상품 종류는 이넘을,지역은 컨트롤러에서 생성(?)을,이렇게 다른 방식을 적용하는 이유가 있나요? 혹 체크박스와 라디오의 차이인건지..
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
소스코드안에 itemservice-db-start, itemservice-db
itemservice-db-start를 itemservice-db로 바꾸라 하셨는데 이미 itemservice-db가 있었습니다.그래서 itemservice-db로 intellij를 켰는데 안되고 itemservice-db-start로 하니까 되었습니다.두개 다 필요한것인지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강사님 인텔리제이 run을 하면 뜨는 오류때문에 문의드립니다.
이렇게 경고창이 뜨는데요 제가 며칠 쉬다가 강의를 들어서 어디 부분에서 오류가 잡히는지 전혀 감이안와서요 ㅠㅠ딱히 경고창 뜨는 부분도 없고.. 부탁드리겠습니다!
-
해결됨스프링 핵심 원리 - 고급편
수업 방식 질문입니다.
테스트에 @Test 가 달린 코드만 작성하는게 아니라 테스트에 사용되는 다른 개발 코드들도 테스트 폴더 밑에 작성하고 계신데 이런걸 TDD로 봐도 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 다운로드 후 Redirect
예제로 구현하는 파일 업로드, 다운로드 에서 파일 다운로드 할때 다음과 같이 ReponseEntity를 return해서 진행했었습니다.return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition).body(resource);그런데 다운로드 후 다른 uri로 redirect를 하려면 어떻게 해야하나요? 구글링을 해보니 다운로드 후 redirect는 할 수 없다는데 만약 redirect되게 하고 싶다면 어떻게 구현해야할까요?
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
프록시 객체가 생성될 때 synchronized 없이 메서드가 생성되는 것이 맞을까요?
먼저 좋은 강의 감사드립니다. 프록시 객체에서 이해가 안 가는 부분이 있어 질문드립니다.@Transactional을 사용하면 프록시 방식의 AOP로 동작하는 것은 이해하고 있습니다. 스프링 부트는 CGLIB 방식으로 프록시 객체를 생성하므로, StockService를 상속하는 StockServiceProxy가 만들어질 때 StockServiceProxy.decrease()에도 synchronized 키워드가 붙어있을 것이라고 생각했습니다. 그런데 강사님께서 TransactionStockService 를 예로 드실 때 synchronized 를 안 붙이신 걸 보니 프록시 객체가 생성될 때는 synchronized 가 안 붙는 건가? 라고 생각들었습니다.Q. 프록시 객체가 생성될 때 synchronized 없이 메서드가 생성되는 것이 맞을까요?읽어주셔서 감사합니다 :)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA 특징 중 자동 업데이트 관련
주문 서비스 개발 부분 강의를 듣다가 궁금한 점이 있어 질문드립니다. 주문 취소(OrderService.cancelOrder) 부분에서order.cancel() 만 작성하면 JPA 특징으로 인해, 데이터 업데이트 관련 쿼리 로직 없이 자동으로 업데이트 된다고 하셨는데요. 주문 생성(OrderService.order)의 EntityManager 가 사용된 orderRepository.save(order); 와 혼동이 와서 질문 남깁니다. 주문 취소 order.cancel() 메서드를 타면서 엔티티의 값(status, count 등) 변경 내역이 자동으로 업데이트 되는 것이라고 하면, 주문 생성도 Order.createOrder(member, delivery, orderItem); 를 타면서 엔티티의 값들을 설정하기 때문에 orderRepository.save(order); 를 사용하지 않아도 되는게 아닌가 라는 생각이 듭니다. 제가 JPA 를 잘 몰라서 혼란이 오는 것 같은데.. 쿼리는 직접 작성하지 않아도 업데이트/저장/삭제 등 DB 조작이 일어나려면 EntityManager 를 통해야 된다고 생각하고 있었습니다. 주문 취소는 EntityManager 없이 업데이트 되고, 주문 생성은 EntityManager의 persist() 를 사용해서 저장하는 것 이 2가지 차이점에 대해서 설명 부탁드립니다! 감사합니다 :)
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
Repository 대신 Reader / Writer 사용 질문있습니다!!
안녕하세요.회사내에서 Reader, Writer 개념을 도입하여 사용하고 있습니다. 흐름은 아래와 같습니다controller -> service -> reader or writer -> repository제가 궁금한것은 JPA를 사용하고 있어 단건데이터 수정시 더티체킹을 하고 있는데요.writer내에서 더티체킹을 위한 엔티티를 조회하는거 조차 하면 안되는지 궁금합니다!안된다면 reader에서 엔티티를 조회하고 서비스로 반환한 다음 해당 엔티티를 writer로 넘겨줘야 하는지요..!!아 그리고 해당 강의가 지식공유자 답변 미제공 강의더라구요 ㅠㅠ 답변이 의무는 아니시지만 선생님의 지구 내핵 같은 깊은 배려심으로 답변을 해주시는거신지요.. 한줄기 빛 같은 강의(강의보다 시력 0.2 감소됨) 감사드립니다.