묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 실습 중 발생한 장애에 관해 궁금한 점이 있습니다.
서버정지시 fail : https://www.inflearn.com/questions/356957 build.gradle 설정 : https://www.inflearn.com/questions/176890 강의 정말 유익하게 잘보고 있습니다! 강의 시청 중 장애를 만나 이를 해결하려다 여러 문제가 복합적으로 터졌고 답변과 구글링을 통해 어찌저찌 해결은 했으나 제가 맞게 해결한건지 아니면 임시방편으로 때운건지 알고싶어서 질문드립니다. 현재 사용중인 intellij는 edu버전(ce와 거의 비슷하다고 알고있습니다)입니다. 장애가 발생한 실습은 mvc패턴 적용편의 MvcMemberFormServlet과 new-form 작성이었는데요. 이전 강의들에선 기본적으로 빌드 툴을 그래들에서 인텔리제이로 바꿔서 진행하는 것이 낫다고 하셔서 그대로 진행했습니다. 하지만 이번강의에선 무료버전을 사용중이면 빌드툴을 그래들로 실행하라고 매뉴얼에 적혀있어 바꾼 뒤 진행했습니다. 그런데 new-form 작성이 끝나고 서버를 재부팅하자 Execution failed for task ':ServletApplication.main()'.> Process 'command 'C:/Program Files/Java/jdk-11.0.14/bin/java.exe'' finished with non-zero exit value 1가 발생하였고 혹시나 싶어서 빌드툴을 인텔리제이로 바꾼 뒤 실행하자 ApplicationContext 관련 장애가 발생하여 구글링을 하기 시작했고 위에 작성한 답변들을 바탕으로 이렇게 생각하였습니다. 1. ApplicationContext가 스프링 컨테이너와 관련이 있다고 배웠었고 톰캣은 웹 서버와 스프링 컨테이너를 내장하고 있기때문에 톰캣이 정상 작동하지 않아서 ApplicationContext가 발생했고 이는 dependency문제때문인가? 2. 구글링해서 알아보니 JSP를 jar에서 실행하지 못하는건 jar와 war의 디렉터리 구조가 다르고 WAR의 WEB-INF 디렉터리가 tomcat의 default기 때문이라고 되어있어 혹시 web-inf 바깥의 jsp파일이 존재하기 때문에 그러는 것일까? 그래서 1. build.gradle의 providedRuntime 삭제 2. 빌드툴을 인텔리제이로 변경 3. gradle JVM 경로 재설정 이 과정을 진행했는데도 문제가 해결되지않아 계속 살펴보았고 결국 WEB-INF밖에 위치한 모든 JSP파일을 지운 후에야 서버가 정상적으로 켜졌습니다. 결과적으로 보면 jsp파일의 경로가 잘못되어 생긴 문제 같은데 너무 글이 길어진 것 같아 죄송하지만 해결하는 과정에서 생긴 exception들이 너무 많아 혼란스러워 이렇게 질문드립니다. 1. jsp 실습을 위해 WAR를 사용하신 것 같은데 WAR는 별도의 설정이 없다면 외부 톰캣을 라이브러리로 받아 실행해야하는데 이 과정에서 인테리제이 ce버전은 providedRuntime 코드를 인식하지 못하여 톰캣이 실행되지 않아 이 코드를 지워 jar같이 내장 톰캣을 사용하도록 바꾼 것이 맞나요? 2. 알아본바로 실행가능한 .jar는 내장 톰캣이 web-inf내에 위치하지 않은 jsp는 사전정의된 구조를 따르지 않아 실행할 수 없다고 되어있던데 dependency에서 providedRuntime 코드를 지워 내장 톰캣을 사용토록 한 것이 맞다면 jar와 같은 방식으로 빌드되어 web-inf 바깥의 jsp를 인식하지 못한 것인가요? 3. 빌드툴을 인텔리제이에서 그래들로 바꾸면 자바 플러그인 등 더 많은 기능을 포함하여 빌드하기때문에 Execution failed for task ':ServletApplication.main()가 발생하는 것 같은데 이 생각이 잘못된건가요? 너무 질문글이 길어 보시느라 소중한 시간을 뺏은 것 같아 너무 죄송합니다 ㅠㅠ 그래도 글에서 어느게 맞고 어느게 틀린건지 조금이라도 답변해주시면 정말 감사할거같아요.
-
미해결스프링 핵심 원리 - 기본편
안녕하세요. discount 2번 사용에 관해 질문드립니다.
안녕하세요! 일전에, ㅡㅡ 고객쪽에서 MemberRepository m = new MemoryMemberRepository(); 라는 예제에서는 Memory에서 오류가 발생했을 때, JdbcMemberRepository();를 사용하도록 코드를 짜고 싶습니다. 그렇다면, client쪽에서 try{ MemberRepository m = new MemoryMemberRepository(); } catch() { MemberRepository m = new JdbcMemberRepository(); } ㅡㅡ 위와 같은 질문을 드렸고, List, Map강의를 보라하셔서 봤습니다.이번 강의에 나온 discount코드를 가지고 추가적인 기획과 함께 코드를 짜보았습니다. 1. discountCode는 "rate"가 우선순위 1위이고, price가 0이면 오류를 반환하다. 2. 1번 오류가 발생했을 때, "fix" discount 로직을 실행한다. public int discount(Member member, int price, String discountCode) { // ... 로직은 강의와 동일} ㅡㅡㅡㅡㅡ discount를 실행하는 구현체는 아래와같습니다. class Something { public doDiscount() { try{ discountService.discount(..., "rate") }catch{ discountService.discount(..., "fix") } .... } } 결론적으로 제가 궁금한건, 같은 추상화로 구현된 로직 중, 첫번째 로직이 실패했을때 두번째 로직을 실행시켜라 라는 상황은 try, catch로 구현하는 것이 맞는지 궁금합니다
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
한 번 쭉 영상을 시청하고 나서 이해하고 난다음에
정리하는게 낫겠죠? 보면서 계속 정리하는거보다? 계속 정리하면서 하면 흐름도 끊기고 진도가 안나가는 느낌이라서요..
-
미해결초보를 위한 도커 안내서
docker-compose up 할 때 환경변수 타입 에러 문의
안녕하세요. 강의 잘 듣고 있습니다. docker-compose up 실습을 위하여 강의내용처럼 `.yml` 파일에 코드를 작성하고 `docker-compose up` 명령어를 입력했는데 `.yml` 파일 안에 문자열(String) 타입이 아닌 `WORDPRESS_DB_HOST: db:3306`이 포함되어 있다고 invalid 에러가 뜹니다. 강의내용대로 한 것 같은데 뭐가 문제일까요... docker-compose.yml 소스 코드 version: '2' services: db: image: mysql:5.7 volumes: - ./mysql:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: image: wordpress:latest volumes: - ./wp:/var/www/html ports: - "8000:80" restart: always environment: - WORDPRESS_DB_HOST: db:3306 - WORDPRESS_DB_PASSWORD: wordpress 에러 메시지 ❯ docker-compose up ─╯ ERROR: The Compose file './docker-compose.yml' is invalid because: services.wordpress.environment contains {"WORDPRESS_DB_HOST": "db:3306"}, which is an invalid type, it should be a string
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
class Meta에 대해 질문입니다.
10:54의 내용을 10:57에 심플하게 바꿀 수 있다고 해주셨는데요 클래스 내부에 클래스가 들어잇는 문법을 처음봐서 찾아보려는데 키워드를 잘모르겠네요 혹시 '메타클래스'라는게 맞을까요? 이렇게 저렇게 찾아봐도 메타클래스에 관한 부분인 것 같긴한데, 또 찾는 자료들에서는 설명해주신 방식으로 메타클래스를 사용하는 걸 못봐가지구요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
12분 40초 질문
1. A라는 쓰레드가 Push에서 락을 잡는다.(다른애가 Push를 못하는 상황) 그리고 _jobQueue에다가 일감을 밀어 넣는다. 2. lock 안에서 flush가 true로 바뀌어서 Flush함수로 간다. 3. A쓰레드는 Flush함수에 들어와서 while문안에서 Pop을 한다. 4. Flush에서 Pop을 하는 순간 A는 락을 잡고 "_jobQueue.Count == 0" 이 될때까지 retrun _jobQueue.Dequeue();를 하면서 Flush의 while문을 돌게된다. ********* <질문> A라는 쓰레드가 Push에 와서 최초의 _flush를 true로 바꾸어 주어서 모든 쓰레드들이 접근이 가능한 _flush는 true인 상태여서 A가 Flush함수를 실행하러 계속 안에 있고 다른 B라는 쓰레드가 Push에와서 락을 잡고 일감을 밀어 넣는다고 해도 _flush는 true라서 Push안의 flush를 true로 바꿀 수 없어서 if (flush)에 조건이 안맞아 락만 걸고 일감을 밀어넣고 나오고 A만 Flush를 실행할 수 있고 A만 Flush함수에 계속 상주해 있고 다른애들이 계속 일감만 밀어 넣어주는 방식인가요?? Pop에서 락을 건 이유는 그냥 데이터를 안전하게 꺼내기 위함이고... 이렇게 이해했는데 맞을까요??
-
미해결FreeRTOS 프로그래밍
Nucleo-64 보드의 firmware update error
안녕하세요 FreeRTOS 강의를 새로 수강하게 된 문수영이라고 합니다. 업무 상 RTOS 환경에서 개발을 할 예정이라 RTOS의 기본을 익히기 위해 강좌를 수강하였고 기대가 많이 됩니다. 개발환경 구축을 위해 NUCLEO-64 (STM32F104RB) 보드를 구입하였고 pc에 연결한 다음 STM32CubeIDE를 실행하니 Firmware update를 하라는 안내문이 뜨더군요. 그래서 해당 IDE에 내장된 STLINKUpgrade라는 프로그램을 실행하였더니 firmware version을 확인할 수 없다는 메시지가 출력되면서 update 버튼이 비활성화된 상태로 보입니다. (아래 그림 참조) 펌웨어 업데이트를 하지 않은상태에서는 예제 프로그램의 디버깅이나 실행이 되지 않아 먼저 업데이트를 해야 하는데 위와 같은 에러가 발생하여 학습 진도가 나가지 못하고 있는 상태입니다. 위 문제의 원인은 무엇인지, 해결방법은 무엇인지 알려 주시면 감사하겠습니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
안녕하세요 질문 있습니다.
QueryFailedError: Field 'createdAt' doesn't have a default value 이런 에러가 계속 떴습니다. 그래서 포스트맨으로 이메일, 비밀번호, 닉네임을 적어서 보내도 저 에러 메시지가 떠서 구글링 해서 찾아보니 createdAt, updatedAt때문에 자꾸 에러나는 것 같았습니다. 그래서 @Column("datetime", { name: "updatedAt" })updatedAt: Date;에서 @CreateDateColumn({ name: 'updatedAt', type: 'datetime' })updatedAt: Date;로 바꿔보니까 잘 되었습니다. (updatedAt도 바꿈)왜이럴까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
혹시 이런 경우는 무엇인가요?
권한을 주고 ./h2.sh를 하면 브라우저에 3분 45초경에 나오는 것 처럼 안 나오고 이렇게 뜨는데 무슨 문제일까요? 구글링해봐도 저런 사례는 없는거같아요 ㅠㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
response 객체의 설정 순서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. response객체를 설정할 때, status-line을 먼저 설정하시고 - header 설정 후- messageBody를 설정하셨는데 혹시 이 순서를 지키지 않으면 설정이 제대로 되지 않는지 궁금합니다. 예를 들어 저의 경우는 response.getWriter().write("ok"); 문장 이후에 response.setCharacterEncoding("utf-8"); 을 작성하였는데, 실제 응답 메세지의 인코딩 방식으로 utf-8이 적용이 되지 않았습니다. 그래서 순서를 지켜야 하는건지 궁금했습니다. 감사합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
몸무게 짝짓기
정렬 후에 짝지어서 나갈 때 가장 큰몸무게와 가장 작은몸무게 나가는게 아니라 M kg 에 최대한 가깝게 짝지어서 나가는게 맞지 않나요??
-
미해결React 기반 Gatsby로 기술 블로그 개발하기
thumbnail 에 링크 넣기
thumbnail: './doguri.jpeg 이런 방식으로 상대경로로 파일을 가져오는데, url을 이용해서 불러오는 것도 가능할까요?
-
미해결파이썬 플라스크(Flask) 기반 웹 개발 및 업무 자동화 서비스 활용
디버그모드ㅠㅠ
디버그모드를 TRUE로 만들면 웹페이지 /test라 치면 자동으로 웹이 생기는건가요? 아니면 따로 웹을 설정해줘야되는건가요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
코드 래핑
안녕하세요 실무에서 사용할 때 코드 래핑을 보통 하는데, 코드 래핑 이라는게 libary dependencies를 줄이기 위해서 기존 코드를 한 번 wrap(래핑)한다라고 알고 있습니다. 혹시 실무에서 사용하시는 래핑 기법들이 있으신지 알고 싶습니다. 이렇게 질문 드리는 이유는 만약에 보일러 플레이트를 만들어 놓고 사용하다가 나중에 libary가 업데이트 되서 버전이 올라가면 그 때, library 버전도 업데이트를 시키면 오류가 많이 나올 수 있을꺼 같아서 질문드립니다. 가령 만들어주신 boilerplate에서 래핑이 되어 있지 않는다면, 수 많은 dependencies가 있을텐데, 특정 사용하는 library가 업데이트 되서 만약 버전업을 실수로 하거나 했을 때 전체적으로 문제가 발생 할 수 있을꺼 같아서요. 사용하는 라이브러리의 버전을 바꿔주지 않는 다면 문제는 없을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
pdf 오타
pdf 24페이지에 파라미터 전송 부분의 결과에 복수 파라미터 조회 아래에 username=hello 하나만 나와야 하는데 복수파라미터 전송한것처럼 두개가 나와있습니다.
-
미해결Vue.js + TypeScript 완벽 가이드
깃헙 권한 요청드립니다.
2번째 프로젝트 권한 요청드립니다. igoman2@ajou.ac.kr 입니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
Tilemap tm = Util. 에서 Util이 잡히지 않습니다.
안녕하세요! 영상을 보며 공부중인 학생입니다! 개인적인 시간상 전 part 영상을 안보고 지금 part 영상으로 건너뛰어 시작하였습니다. Util과 File 부분이 참조가 되지 않아 진행이 멈춰있는 와중에 File은 파일 생성과 관련되어 있는 것 같아 찾아보니 using System.IO; 를 안해서 나오는 현상이여서 해결 하였으나 Util은 어떤 using을 해줘야 하는지 모르겠습니다.
-
해결됨[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
제공해주신 txt 파일 관련
선생님! 맥os의 경우 제공해주신 최종본 제작 파일 안에 txt파일이 모두 깨져서 안보이는데 어떻게 확인 할 방법이 있을까요ㅜㅜ?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
react-slick CSS가 적용안되는 에러
안녕하세요 제로초님 강의 해주신 코드에서 조금 변경하여 진행 중인데 react-slick의 css가 적용이 되지 않는 에러가 발생하여 원인이 궁금하여 질문 남깁니다.(기능은 정상적으로 동작합니다.) 우선 제 생각엔 react-slick 내부적으로 css가 inherit 로 되어있어서 저 부분이 적용안되는 것 같기도하고 사이즈를 Wrapper 높이를 조절해도 해결이 안됩니다. 클래스 네임 보고 하나하나 css 커스텀 해서 적용하면 해결될 것 같은데 에러 발생 원인을 알고싶습니다. 우선 제가 구현하고 싶은 ui는 인스타그램 웹버전 참고해서 비슷하게 만들고 싶습니다. 현재화면과 전체코드 PostImages.js 첨부하겠습니다. 현재 화면 전체 코드 https://github.com/HomieKim/SNS_Project/tree/master/front PostImages.js import React, { useCallback, useState } from 'react'; import PropTypes from 'prop-types'; import styled, { createGlobalStyle } from 'styled-components'; import Slider from 'react-slick'; const ImgWrapper = styled.div` padding: 16px; text-align: center; & img { margin: 0 auto; max-height: 750px; } `; const Global = createGlobalStyle` .slick-slide { display: inline-block; width : 100%; } .ant-card-cover { transform: none !important; } ` const SlideWrapper = styled.div` max-height : 800px; overflow : hidden; `; const PostImages = ({images})=>{ //const [showImagesZoom, setShowImagesZoom] = useState(false); const onZoom = useCallback(()=> { //setShowImagesZoom(true); },[]); const settings = { dots: true, infinite : true, speed: 500, slideToShow : 1, slideToScroll : 1 } if(images.length === 1) { return ( <> <img style={{ maxHeight : 750}} src={images[0].src} alt={images[0].src} onClick={onZoom} /> </> ) } return ( <div> <Global /> <SlideWrapper> <Slider {...settings}> { images.map((item) => ( <ImgWrapper key={item.src} > <img src={item.src} alt={item.src} /> </ImgWrapper> )) } </Slider> </SlideWrapper> </div> ) } PostImages.propTypes = { images: PropTypes.arrayOf(PropTypes.shape({ src: PropTypes.string, })).isRequired, }; export default PostImages; 좋은 강의 감사합니다!
-
미해결기초부터 따라하는 디지털포렌식
Sysinternals Suite(strings.exe)에 관해
질문은 아니고 Sysinternal Suite를 처음 사용하시는 분들이 모르실까봐 추가적인 정보를 작성해 주셨으면 합니다. 강의 내에서 strings.exe를 이용하는데 Sysinternal Suite를 처음 사용하시는 경우 강의처럼 명령어를 치면 제대로 된 결과값이 안나옵니다. 제대로 된 결과 값이 나오기 위해서는 -accepteula 옵션을 추가 해야합니다. 그 뒤로는 강의 처럼 -accepteula 옵션없이 명령을 실행해도 결과가 잘 나옵니다.