묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
File imprt 어떤거 해야하죠?
File file = new File("not existing file.txt"); FileInputStream = new FileInputStream(file);이 코드를 복붙을 했는데 FileInputStream = new FileInputStream(file);이부분에서 FileInputStream 부분이 빨간줄이 뜹니다 import java.io.File; import java.io.FileInputStream;임포트는 이걸 했구요Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system. A new FileDescriptor object is created to represent this file connection.First, if there is a security manager, its checkRead method is called with the path represented by the file argument as its argument.If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a FileNotFoundException is thrown.이런 오류가 있는데 어떻게 해결해요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
return과 return-redirect에 관한 질문
이제까지 'url에 @RequestMapping과 @GetMapping로 조합된 주소를 입력하면 return값에 있는 html을 보여준다' 와 같이 이해하였습니다. @RequestMapping("/basic/items") @GetMapping("/{itemId}/edit") public String 메서드명(){ 코드 실행 return "basic/editForm";}url에 "/basic/items/1/edit"을 입력하여 상품수정 페이지를 호출하면 templates/basic/editForm.html와 같이 <해당 경로에 있는 html 파일>화면을 뿌려준다(렌더링한다?) 와 같이요. 그런데 이번에 리다이렉트를 보면return "redirect:basic/items/{itemId}";<해당 경로에 있는 html 파일>을 뿌려주는것이 아니라 해당 url을 입력한 것처럼 해서 @GetMapping("/{itemId}") public String item(@PathVariable long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; }이 코드가 실행되는것으로 보입니다.1.우선 제가 올바르게 이해하고 있는것이 맞는지 궁금합니다.2.return값에 redirect가 붙으면 html 파일의 절대경로가 아니라 url로 인식을 해서 매핑을 알아서 해주는지 궁금합니다.
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
response.sendRedirect / forward
어떤건 sendRedirect를 쓰고 어떤건 forward를 썼던데 쓰는 기준이 정해져 있는건가요? 아니면 방식만 다를 뿐 아무거나 써도 상관없는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test.mv.db 삭제 후 오류
강의 영상에서test.mv.db를 삭제하라 하셔서 rm으로 지웠는데요 다시 시작하라 하셔서 jdbc:h2:~/test 이거로 입력하니 Database "C:/Users/(사용자명)/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) 로 뜹니다... 결정적으로 이전에는 만들어졌던test.mv.db 파일이 안 만들어집니다..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
빌드 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요?예[질문 내용]안녕하세요~자바 21 로 선택 후 아래와 같이 프로젝트를 받았는데 빌드오류가 계속 진행돼서 질문합니다.혹시 어떤 부분이 문제인지 알 수 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
status 의 의미
1:57 부터 status의 속성이 의미하는게 무엇인지 궁금합니다.저장이 성공했다는 의미로 값을 true 로 설정하신 걸까요?강사님께서 "남는애들은 쿼리파라미터 형식으로 들어가게 된다." 라고 하시는데남는 애들 -> 속성들 인 것 같고근데 그게 왜 true로 리턴되는지 모르겠습니당....왜 굳이 추가하신 건가요?
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
검색기능이 안됩니다
코드를 맞게 쳤는데 메뉴 이름중 일부만 검색했을때 나오질 않네요<!-- 검색에 의한 쿼리 --> <select id="doSearch" resultType="hello.sailing.v2.vo.Order_list"> SELECT no, coffee_no, coffee, price, cust_id, name, DATE_FORMAT(reg_day,'%Y.%m.%d') AS reg_day FROM order_list WHERE 1=1 AND reg_day >= DATE_FORMAT( #{strStartDate},'%Y%m%d') AND reg_day < DATE_ADD(DATE_FORMAT(#{strEndDate},'%Y%m%d'), INTERVAL +1 DAY) <if test="strCoffee != 'ALL'"> AND coffee like CONCAT(#{strCoffee},'%') </if> <if test="strName != 'ALL'"> AND name like CONCAT(#{strName},'%') </if>
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
검색기능이 안됩니다
@PostMapping("/order_search") public String doSearch( @RequestParam("start_date") String strStartDate, @RequestParam("end_date") String strEndDate, @RequestParam(value = "coffee", defaultValue = "ALL") String strCoffee, @RequestParam("name") String strName, Model model ){ log.info("strStartDate :"+strStartDate); List<Order_list> list = orderSvcV2.doSearch(strStartDate,strEndDate, strCoffee,strName ); model.addAttribute("list", list); return "/v2/order/order"; }/* 조회하기 */ public List<Order_list> doSearch(String strStartDate, String strEndDate, String strCoffee, String strName) { List<Order_list> list = orderDao.doSearch(strStartDate,strEndDate, strCoffee,strName ); return list; }package hello.sailing.v2.dao; import hello.sailing.v2.vo.Order_list; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface OrderDaoV2 { List<Order_list> doList(); List<Order_list> doSearch(String strStartDate, String strEndDate, String strCoffee, String strName); }package hello.sailing.v2.vo; import lombok.Data; @Data public class Order_list { private String no; private String coffee_no; private String coffee; private String price; private String cust_id; private String name; private String reg_day; } <!-- 검색에 의한 쿼리 --> <select id="doSearch" resultType="hello.sailing.v2.vo.Order_list"> SELECT no, coffee_no, coffee, price, cust_id, name, DATE_FORMAT(reg_day,'%Y.%m.%d') AS reg_day FROM order_list WHERE 1=1 AND reg_day >= DATE_FORMAT( #{strStartDate},'%Y%m%d') AND reg_day < DATE_ADD(DATE_FORMAT(#{strEndDate},'%Y%m%d'), INTERVAL +1 DAY) <if test="strCoffee != 'ALL'"> AND coffee like CONCAT(#{strCoffee},'%') </if> <if test="strName != 'ALL'"> AND name like CONCAT(#{strName},'%') </if> </select>화면에서는 조회버튼을 누르면 검색이 안됩니다...코드는 틀린게 없는데 왜 그런거죠?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
(3:56) 현재도 V3,V4가 작동되는지 질문드립니다
코드를 똑같이 작성하였음에도 V3,V4가 작동되지 않습니다버전이 바뀜에 따라 기능이 작동하지 않는건지 아니면 다른 문제인건지 확인해주시면 감사하겠습니다! @Slf4j @Controller public class RequestParamController { @ResponseBody @RequestMapping("request-param-v3") public String requestParamV3( @RequestParam String username, @RequestParam int age) { log.info("username={},age={}", username, age); return "OK"; } } @ResponseBody @RequestMapping("request-param-v4") public String requestParamV4(String username,int age) { log.info("usernameV4={},ageV4={}", username, age); return "OK V4"; // <- @ResponseBody }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 예외처리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)log.error("afterCompletion error!!", ex); 여기서 왜 ex에 대한 정보는 출력이 되지 않나요?[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
강의보고 응용하다가 테스트코드 부분 질문이 있습니다.
WebMvcTest를 이용한 테스트코드 작성하는데 원하는 대로 값이 안나와요... @Test void store_canNotAccess1() throws Exception { //given //when //then mockMvc.perform(post("/store/somePoint") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isBadRequest()) .andExpect( result -> { String content = result.getResponse().getContentAsString(); System.out.println(content); }); }@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(false); if (session == null || session.getAttribute(SessionConst.LOGIN_PARTNER) == null) { throw new CustomException(ErrorCode.PARTNER_ONLY_ACCESS); } return true; }session에 null이 들어가는 거 까진 디버깅으로 확인을 했는데jakarta.servlet.ServletException: Request processing failed: reservation.hmw.exception.CustomException: 파트너 회원만 접근할 수 있습니다.이런식으로 테스트가 실패를 하네요...어떻게 하면 예외를 잡아서 성공 테스트코드를 짤 수 있을까요?
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
500에러
<!DOCTYPE html> <html lang="ko"> <head> <title>Coffee Order List</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" href="/css/comm.css"> <link rel="stylesheet" type="text/css" href="/css/coffee.css"> </head> <body> <!-- 헤더 위치 --> <div class="topnav"> <a href="/v2/home">Home</a> <a href="/v2/menu">커피메뉴</a> <a href="/v2/order">주문내역</a> <a href="/v2/member">고객정보</a> </div> <div id="main" style="font-size:large; text-align: center; "> <div id="search" style="height: 150px;padding: 15px; font-size: small; width: 90%; margin-left: auto; margin-right: auto;"> <h3>[ Coffee Order List <span style="font-size:30px;">🛒</span> ]</h3> <form name="fm_order" autocomplete="on"> <fieldset> <legend> [검색조건] </legend> <label>등록기간</label><input type="date" id="start_date" name="start_date" min="2020-01-01" max="2023-12-31"> - <input type="date" id="end_date" name="end_date" min="2020-01-01" max="2023-12-31"> <label>메뉴명</label> <input type="text" id="menu" name="menu"> <label>고객명</label> <input type="text" id="name" name="name"> </select> <input type="submit" value="조회" style="width: 80px;height: 30px;font-weight: bold; font-size: medium"> <!-- <a href="javascript:loadDocArray()">test</a> --> <!-- <label>CheckBox : </label><span id="idCheckBox"></span>--> </fieldset> </form> </div> <table class="table"> <thead> <tr class="tr_td"> <th>Chk</th> <th>주문번호</th> <th>커피No</th> <th>메뉴명</th> <th>가격</th> <th>고객ID</th> <th>고객명</th> <th>주문일자</th> </tr> </thead> <tbody id="t_body"> <!--- 데이타 출력 부분 --> <tr th:each="prod : ${list}"> <td><input type="checkbox" name="chkOrderNo" th:value="${prod.getNo()}"></td> <td th:text="${prod.getNo()}">주문번호</td> <td th:text="${prod.getCoffee_no()}">커피No</td> <td th:text="${prod.getCoffee()}">메뉴명</td> <td th:text="${prod.getCust_id()}">고객ID</td> <td th:text="${prod.getName()}">고객명</td> <td th:text="${prod.getReg_day()}">주문일자</td> </tr> </tbody> </table> </div> <!-- 푸터 위치 --> <div class="footer"> <!-- https://www.w3schools.com/html/html_emojis.asp --> <h4>[Footer] <span style="font-size:30px;">⛵</span> Spring boot 항해 ~ with Me</h4> </div> </body> </html> 계속 오류가 There was an unexpected error (type=Internal Server Error, status=500).An error happened during template parsing (template: "class path resource [templates/v2/order/order.html]")org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/v2/order/order.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241)이렇게 떠요ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
패키지 질문 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]SpringConfig를 만들 때 service 패키지에 만든 이유가 있나요? 메인 클래스와 같은 패키지 및 아래 패키지에 존재하면 상관 없나요?
-
미해결처음하는 파이썬 백엔드 FastAPI 부트캠프 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
mySQL과 fastAPI가 연동이 안됨
mysql 과 mysql workbench를 설치하고 접속하려는데 안돼서 고생하고 있습니다.코드는 아래와 같고'code'from fastapi import FastAPI, Dependsfrom sqlalchemy.orm import Sessionfrom sqlalchemy import Column, Integer, String, create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom pydantic import BaseModelDATABASE_URL = "mysql+pymysql://newjeans:@gaius2127@localhost:3306/db_name"engine = create_engine(DATABASE_URL)Base = declarative_base()class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True, index=True) username = Column(String(50), unique=True, index=True) email = Column(String(120))class UserCreate(BaseModel): username: str email: strdef get_db(): db = Session(bind=engine) try: yield db finally: db.close()Base.metadata.create_all(bind=engine)app = FastAPI()@app.get("/")def read_root(): return {"message": "Now, tackle with mySQL"}@app.post("/users/")def create_user(user: UserCreate, db: Session = Depends(get_db)): new_user = User(username=user.username, email=user.email) db.add(new_user) db.commit() db.refresh(new_user) return {"id": new_user.id, "username": new_user.username, "email": new_user.email} 터미널에 메세지는 PS C:\wonnho\fastapi> python -m uvicorn main:app --reloadINFO: Will watch for changes in these directories: ['C:\\wonnho\\fastapi']INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)INFO: Started reloader process [20636] using StatReloadProcess SpawnProcess-1:Traceback (most recent call last): File "C:\Python312\Lib\site-packages\pymysql\connections.py", line 644, in connect sock = socket.create_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python312\Lib\socket.py", line 828, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python312\Lib\socket.py", line 963, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^socket.gaierror: [Errno 11003] getaddrinfo failedDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "C:\Python312\Lib\site-packages\sqlalchemy\engine\base.py", line 3280, in wrappool_connect return fn() ^^^^ 중간 생략..... File "C:\Python312\Lib\site-packages\pymysql\connections.py", line 358, in init self.connect() File "C:\Python312\Lib\site-packages\pymysql\connections.py", line 711, in connect raise excsqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'gaius2127@localhost' ([Errno 11003] getaddrinfo failed)")(Background on this error at: https://sqlalche.me/e/14/e3q8)아이디와 패스워드가 문제인거 같은데 뭐가 문제인지 모르겠네요. 륀튼에게 물어보고 제미나이도 물어봤는데 해결이 안되어 힌트라도 얻을려고 질문합니다.위에 newjeans라는 아이디가 있음.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
응용해볼려고 세션을 이용한 테스트코드 작성중인데 잘모르겠습니다.
강의를 보다 혼자 응용해봤는데@Mock private HttpServletRequest request; @Mock private HttpSession session; @Test void store_canAccess() throws Exception { // given given(request.getSession(false)).willReturn(session); given(session.getAttribute(SessionConst.LOGIN_PARTNER)) .willReturn(1L); // when // then mockMvc.perform(post("/store/somePoint") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()); }@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(false); if (session == null || session.getAttribute(SessionConst.LOGIN_PARTNER) == null) { throw new CustomException(ErrorCode.PARTNER_ONLY_ACCESS); } return true; }채찍피티의 도움과 함께 이렇게 짰는데 CustomException이 터져요...혹시 잘못된 부분이 있을까요
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
v2 객체 만드는중 입니다
v2 객체 만들고 이름도 바꾸고 패키지도 다시 만들었는데 이 오류가 자꾸 발생합니다..3일동안 하는데 계속 같은 오류가 뜨네여[2024-10-0323:26:47:2892] [restartedMain] DEBUG o.s.b.d.LoggingFailureAnalysisReporter -Application failed to start due to an exception org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.sailing.v1.dao.MenuDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
스프링 jpa 기반의 Entity가 올라온다면 서비스 계층이 순수하다고 볼 수 있을까요?
안녕하세요? 강의 잘 듣고 있습니다강의 내용을 쭉 들으면서, 결과적으로 서비스계층에 어떻게 하면 순수한 비즈니스 로직을 남겨둘수 있을까? 에 대한 고민을 풀어주셨다고 생각합니다. 그런데 저 개인적으로 드는 의문은, 일반적으로 JPA를 사용한다면 jpa ORM Entity가 서비스계층에 출몰하게 될텐데, 이는 곧 서비스계층이 JPA기반의 스택에 의존하게 된다는 것 아닌가요? 예를 들어 DB를 MYSql -> Mongo로 바꾼다고 했을 때, 서비스계층에서의 코드변화도 필요할 것 같은데, 이러한 부분에 대해서 어떻게 생각하시는지가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 리포지토리와 회원 서비스
[질문 내용]회원 리포지토리는 인터페이스와, 메모리 구현체로 이루어져 있습니다. 그런데 회원 서비스는 회원 리포지토리와는 반대로 클래스로만 이루어져 있는데 왜 회원 리포지토리는 회원서비스처럼 클래스로 만들지 않고 인터페이스와 메모리구현체 클래스로 나뉘었는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
파라미터에 String이나 기본 타입을 받을 때 @RequestParam을 생략하면
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]파라미터에 String이나 기본 타입을 받을 때 @RequestParam을 생략하면 @RequestParam(required = false)처럼 동작하는 것이 맞나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 소스코드
혹시 강의 소스코드를 받을 수 있을까요??의존성 문제가 해결이 안돼서 강의 코드를 한번 받고싶습니다