묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨
아키텍쳐를 공부한다는게 어떤 의미인지 궁금합니다.
서비스의 아키텍쳐를 공부하면 기획 시 도움이 된다는 말을 많이 들었습니다. 개발에 대한 아무런 지식이 없는데, 서비스의 아키텍쳐를 공부하는게 무엇인지,또 어떻게 공부를 시작하면 좋을지 조언을 얻을 수 있을까요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
등호 2개('==')의 의미가 뭐죠?
a=int(input())if a %2==0: print("짝수")else: print("홀수") 위에서 왜 등호("=")가 2개여야 하죠? 하나로 해보니 에러가 나네요.
-
미해결디지털 포렌식 (Digital Forensic) 전문가 과정
섹션7. 강의 내용 중복 여유
안녕하세요.섹션7 강의인 디지털범인을 찾아라 강의 내용중42강 강의가 43~44강 강의랑 같은 내용인데 다시 촬영해서 올려주신걸까요? 앞에 내용을 봤을때 내용이 중복인거 같아서요
-
미해결TensorFlow로 배우는 심층 강화학습 입문 - Deep Reinforcement Learning
코드 첫 라인부터 오류납니다.
코드 첫 라인부터 오류납니다.확인해서 다시 올려주세요. --------------------------------------------------------------------------- CalledProcessError Traceback (most recent call last) <ipython-input-5-4f475c98efa9> in <cell line: 0>() ----> 1 get_ipython().run_cell_magic('bash', '', '# Install additional packages for visualization\nsudo apt-get update\nsudo apt-get install -y xvfb python-opengl > /dev/null 2>&1\npip install pyvirtualdisplay > /dev/null 2>&1\npip install git+https://github.com/tensorflow/docs > /dev/null 2>&1\npip install gym[classic_control]\n') 4 frames<decorator-gen-103> in shebang(self, line, cell) /usr/local/lib/python3.11/dist-packages/IPython/core/magics/script.py in shebang(self, line, cell) 243 sys.stderr.flush() 244 if args.raise_error and p.returncode!=0: --> 245 raise CalledProcessError(p.returncode, cell, output=out, stderr=err) 246 247 def _run_script(self, p, cell, to_close): CalledProcessError: Command 'b'# Install additional packages for visualization\nsudo apt-get update\nsudo apt-get install -y xvfb python-opengl > /dev/null 2>&1\npip install pyvirtualdisplay > /dev/null 2>&1\npip install git+https://github.com/tensorflow/docs > /dev/null 2>&1\npip install gym[classic_control]\n'' returned non-zero exit status 1.
-
해결됨대규모 트래픽 처리를 위한 부하테스트 입문/실전
수평적 확장을 통해 병목 지점 해소를 한 이유가 궁금합니다.
안녕하세요.최근 성능 최적화와 관련되어 병목 지점을 명확히 하고싶어 해당 강의를 수강중인 한 학생입니다. 강의 내용 중, ec2 의 cpu의 사용량이 100% 찍어, 수평적 확장을 통해 병목 지점을 해소하려고 한 내용을 확인하였습니다. 현재 개발되어있는 spring boot 프로젝트에서 tomcat 서버의 pool 사이즈에 대한 설정과 hikari pool 에 대한 사이즈 설정이 default 로 들어가 있어서 문제가 발생할 수도 있을 것 같다라는 생각이 듭니다. (default 가 min : 10 으로 설정되어있어, 이를 처리하기 하기 위한 thread 생성을 하다 보니, 더 늘어났다고 생각) 물론, 해당 spring boot 의 서버의 자원을 모니터링 하기 위한 툴이 적용되어 있지 않아 판단이 어려운 부분이 있긴 할 것 같습니다. 만약, 스카우터 등을 사용해 모니터링 한 결과, cpu 사용량이 100퍼센트까지 치솟는 지점이, 신규 thread 가 막 늘어나고, 요청들이 waiting 되는걸 확인한다면, pool 사이즈 부터 건들여 보는게 맞을까요?
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
React-native-webview가 0.77.0버전에서 작동이 되지 않습니다.(흰화면)
질문이 아닙니다.해당 현재"react-native": "^0.76.6","react-native-webview": "^13.13.2",에서 웹뷰로 카카오 로그인을 접속하려고 했으나.버그가 있어 렌더링 접속이 되지 않습니다.기존 제공해주신 깃허브 코드로 이어가려고 했으나 동일하네요. 원래는 0.77.0이었으나 해당 라이브러리 깃허브 이슈로 등록되어서 다들 동일하게 에러 뱉습니다.++++ 방법을 찾아보니 랩핑하면 안되고 있습니다. +++랩핑을 제거후에 진행하시기 바랍니다. // <ScrollView style={styles.container}> <WebView style={styles.webview} source={{uri: uri}} onMessage={handleOnMessage} /> // </ScrollView>
-
해결됨한국에서 제일 쉬운 리눅스 커널 강의
xshell 와이파이 연결이 안됌.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 자주 묻는 질문에 혹시 답이 있을 수 있어요.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이렇게 xshell이 연결이 안됩니다.. 동영상 보고 그대로 따라 했는데 왜 안되는 걸까요,,>?
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
ORA-01017 에러
안녕하세요. DBeaver에서 username과 password에 소문자로 잘 맞게 작성했는데 계속 ORA-01017 에러가 발생합니다.여러 차례 시도했는데도 계속 같은 에러가 뜨는데 어떻게 하나요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
css-js 마스터 과정에 이런 것들이 개선되었으면 좋겠습니다!
현재 섹션 5를 거의 다 들은 수강생으로써 느낀 개선점을 말해 봅니다. 각 섹션에 제목이 있으면 좋겠습니다!각 섹션은 css 두 섹션과 js 두 섹션이 묶여 있는데, 이 네 섹션이 왜 한 섹션으로 묶여 있는지 모르겠습니다. 예를 들어, 섹션 1의 css 파트인 여백, 정렬과 js 파트인 변수와 함수 및 그 활용이 서로 관련성이 없는 것 같습니다. 심지어 css 섹션이 끝나는 강의 마지막에 "다음 시간에는 css 애니메이션에 대해 공부해 보겠다"고 하셔서 '어? 다음은 js 강의인데...? css를 먼저 들으라는 건가?' 좀 혼란스러웠습니다. 만약 제 생각이 틀렸다면 각 섹션별로 제목을 붙여서 커리큘럼 확인이 더 잘 되면 좋겠습니다. (사실 챕터와 섹션으로 상위/하위 부분을 명명해 주시면 더 좋겠습니다.) 과제 관련 강의를 추가해 주시거나, 그게 어렵다면 강의에서 과제 수행에 대한 언급을 해주셨으면 좋겠습니다.각 챕터가 끝날 때마다 과제를 수행해야 하는데, 그걸 챕터 5까지 듣고서야 알았습니다... 물론 제 불찰이긴 하지만요... 일기장 관련 언급이 OT에서 "같이 한번 만들어 보려고 한다"는 언급 말고는 이후 강의들에선 전혀 없어서, 저는 매 섹션이 끝날 때마다 '이제 일기장 만드나? 어, 아니네...' 몇 강 후 '이제 일기장인가? 어, 아니네...'를 반복하다 노션을 열고 그제야 알았습니다. 과제 해설 강의는 아니더라도, '이전에 배운 이런이런 걸 잘 활용해서 해 봐라.' 정도의 안내 영상이 있었으면 합니다.
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
request failed 관련하여 질문 드립니다.
안녕하세요 재성님 강의 잘 듣고 있습니다. 다름이 아니라 수업 내용을 저의 서비스에 적용하다가 질문이 있어서 이렇게 글 남겨요.vuser 200으로 5분동안 게시판 글 조회 api를 요청했습니다.ec2, rds의 cpu memory사용은 아래와 같이 안정적인데..k6 대시보드에서는 vuser 100을 기점으로 httprequest를 보내지도 못하며, k6로그에는 request timeout 로그들이 많이 나옵니다.참고로 현재 k6는 로컬(노트북)에서 도커로, 서버는 ec2내에서 도커로 실행되고 있습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계의 주인만 외래키를 관리할수 있다는 의미
안녕하세요. 연관관계 부분이 많이 헷갈리지만 확실히 알고 가고 싶어서 좀 더 공부하면서 알아보고 있다가 질문드릴게 있어서요..!강의에서 연관관계의 주인만 외래키를 관리할수 있다는 의미에 대해서 코드로 제가 이해한 바가 맞는지 직접 확인해보았는데요. 연관관계의 주인만 setTeam()메서드 등을 통해 외래키를 추가 및 변경할 수 있고, 연관관계의 주인이 아닌쪽은 외래키를 참조해서 조회만 할수 있다. 예를들어,Team team = new Team(); em.persist(team); Member member1 = new Member(); Member member2 = new Member(); Member member3 = new Member(); member1.setTeam(team); // 이렇게 해야함 member2.setTeam(team); // 이렇게 해야함 em.persist(member1); em.persist(member2); em.persist(member3); team.getMembers().add(member3); // 이렇게만 하면, member3의 외래키(TEAM_ID)가 설정되지않음. // 즉 member3의 team필드는 여전히 null이다. List<Member> newMembers = new ArrayList<>(); Member member4 = new Member(); em.persist(member4); newMembers.add(member4); team.setMembers(newMembers); // 이렇게만 하면, member4의 외래키(TEAM_ID)가 설정되지않음. // 즉 member4의 team필드는 여전히 null이다 tx.commit(); //그래서 위와같이하면, 이 상태로 db에 저장된다고 해도, 이후에 team.getMembers()를 호출하면, 리스트안에 member1, member2만 있고 member3과 member4는 없다. 이렇게 이해하는게 맞을까요..? 항상 질문에 답해주셔서 정말 감사드립니다..!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
rows per chunk 에 대해서 궁금합니다.
이번에 커버링 인덱스를 설명하시면서 아 대충 왜 빠르게 조회가 되는지 이해가 되기 시작했습니다. 그런데 최근에 했던 프로젝트 중에 이와 비슷한데 왜 성능이 개선되었는지 모르는 것이 하나 있습니다. 아래 부분인데요..일단 created_at 은 index 가 적용되지 않았음을 알려드립니다. select ep1_0.employee_post_id, ep1_0.access_url, ep1_0.contact, ep1_0.contents, ep1_0.member_id, m1_0.member_id, m1_0.access_url, m1_0.authority, m1_0.birth_day, m1_0.email, m1_0.login_id, m1_0.name, m1_0.nick_name, m1_0.password, m1_0.personal_link, m1_0.personal_statement, m1_0.sex, m1_0.tmp_password, m1_0.twitter_link, m1_0.youtube_link, ep1_0.payment_amount, ep1_0.payment_method, ep1_0.title, wft1_0.work_field_tag_id, wft1_0.name, ep1_0.career_year, ep1_0.created_at, ep1_0.updated_at from employee_post ep1_0 left join work_field_tag wft1_0 on wft1_0.work_field_tag_id=ep1_0.work_field_tag_id join member m1_0 on m1_0.member_id=ep1_0.member_id where wft1_0.work_field_tag_id=1 order by ep1_0.created_at desc, ep1_0.employee_post_id desc limit 0,10;이것을 explain analyze 한다면 Limit: 10 row(s) (cost=1088 rows=10) (actual time=39.1..39.1 rows=10 loops=1) -> Nested loop inner join (cost=1088 rows=1968) (actual time=39.1..39.1 rows=10 loops=1) -> Sort: ep1_0.created_at DESC, ep1_0.employee_post_id DESC (cost=399 rows=1968) (actual time=39..39 rows=10 loops=1) -> Index lookup on ep1_0 using FK_work_field_tag_TO_employee_post (work_field_tag_id=1) (cost=399 rows=1968) (actual time=0.0949..7.91 rows=1968 loops=1) -> Single-row index lookup on m1_0 using PRIMARY (member_id=ep1_0.member_id) (cost=0.25 rows=1) (actual time=0.011..0.011 rows=1 loops=10)이렇게 나오고 성능이 무척 안좋은 것을 볼 수 있었습니다(using filesort 가 직접적인 원인) 근데 문제는 member 에 대한 inner join 을 빼면 -> Limit: 10 row(s) (cost=398 rows=10) (actual time=10.5..10.5 rows=10 loops=1) -> Sort: ep1_0.created_at DESC, ep1_0.employee_post_id DESC, limit input to 10 row(s) per chunk (cost=398 rows=1968) (actual time=10.5..10.5 rows=10 loops=1) -> Index lookup on ep1_0 using FK_work_field_tag_TO_employee_post (work_field_tag_id=1) (cost=398 rows=1968) (actual time=0.0712..6.03 rows=1968 loops=1) 위와 같이 나오면서 성능이 무척 개선된다는 점입니다. 제가 보았을 떄 핵심적인 부분은 10 rows per chunk 입니다. 혹시 10 rows per chunk 같은 키워드는 언제 언제 발생하는지 알 수 있을까요??(왜 member에 대한 join 을 빼면 나타나구, wft1_0 을 left outer join 을 하는 것은 영향이 없는지..)mysql 공식 문서를 계속 뒤져도 발견하지 못했습니다. 강의와 관련 없는 부분이라고도 생각하실 수 있는데 이런 질문 해서 정말 죄송합니다.. 관련해서 블로그 정리한 거 혹시 필요한 정보가 있을 수도 있으니 링크 남겨놓겠습니다...https://velog.io/@dionisos198/Query-DSL-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EB%B0%8F-fetch-join-%EA%B3%A0%EC%B0%B0
-
미해결스프링 핵심 원리 - 기본편
"@Autowired 필드명"과 "@Primary" 우선순위
문득 @Autowired 필드명 과 @Primary 의 우선순위가 궁금해서 아래와 같은 테스트를 진행해봤습니다. OrderServiceImpl 클래스의 생성자 파라미터 중에서 DiscountPolicy 타입의 변수명을 fixDiscountPolicy 로 변경하고RateDiscountPolicy 클래스에 @Primary 를 주고 테스트를 돌려봤습니다.@Test void test2() { // 강의에서 사용하던 AutoAppConfig.class ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); OrderServiceImpl orderService = ac.getBean(OrderServiceImpl.class); // OrderServiceImpl 클래스에 getDiscountPolicy 따로 정의 assertThat(orderService.getDiscountPolicy()).isInstanceOf(RateDiscountPolicy.class); } 위 테스트의 결과는 통과하였습니다.즉, @Primary 가 @Autowired 필드명 보다 우선순위가 높다는 얘기인데 몇가지 궁금한 점이 있습니다.제가 궁금한 내용을 확인하기 위해서 위처럼 테스트를 하는 것이 맞나요?(여기서 OrderServiceImpl 클래스의 멤버변수인 discountPolicy 변수명은 안 건드려도 되죠?)테스트가 통과하는 게 맞는 결과인가요?이와 같은 흐름으로 이해하는 게 맞나요?1) 생성자 주입이 이루어질 때 DiscountPolicy 타입으로 등록된 빈 2개 발견2) @Primary 가 있는 RateDiscountPolicy 타입의 빈이 주입3) 만약 @Primary 가 없었다면 @Autowired 필드명 에 의해 FixDiscountPolicy 타입의 빈이 등록 됨그럼 @Qualifier , @Primary , @Autowired 필드명 순서로 우선순위가 높은 게 맞죠?위 내용과는 별개의 질문인데요 특정 클래스에 @Primary 를 붙여주면 해당 클래스의 인스턴스가 빈으로 등록될 때 BeanDefinition 에 @Primary 관련된 정보도 같이 들어가는건가요?
-
미해결[신규 개정판] 코딩 입문자를 위한 파이썬 완벽가이드
Visual Studio Code 통합?
안녕하세요! Visual Studio Code를 각 각 다른 컴퓨터에 다운 받아서 사용하였는데요!해당 작업물이 각 각 다르게 나오고 있더라고요..각 각 다른 컴퓨터에서 각기 다른 작업을 하는 2개의 Visual Studio Code를 통합하여 어느 컴퓨터에서 사용하든 작업을 이어갈 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 1-J long long 선언 관련 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/b83ac67345ca4ddc920bf59bf488a427혼자서 풀다가 하도 안 돼서 강의를 봤는 데 답이 되는 변수의 범위가 커서 long long으로 선언되야 하는걸 놓친 걸 알고 고쳤지만 그래도 틀리더라구요.선생님과 다른 부분이었던 map에 추가할 문자열 b(제 코드에서는 wearKind)를 구하는 과정을 선생님 코드처럼 바꾸니까 맞더라구요.이 부분의 제 코드가 안 되는 반례가 있는거 같아 보이는데 도움 부탁드립니다.. 다시 확인해보니 제 코드에서 m == 0 인 경우 그 뒤 로직수행을 해도 되지만 굳이 안하게 하기 위해 0을 출력하는 로직을 추가했는데 이때 '\n' 출력을 빼먹었네요.. 해결 되었습니다.'\n'을 안넣은 것도 잘못했지만 m==0일 때 0을 출력하는 로직은 뒤에 로직에서 다 포함해서 해결해준다는 걸 문제 풀때 확인했는데도 굳이 해당 로직을 넣은게 아쉽네요. 문제를 풀때는 m=0일때의 계산량을 줄여줄 수 있다고 생각해서 추가했는데 지금 생각해보면 굳이? 느낌이네염.. 1-J 관련해서 다른 질문이 생겨서 글 수정해 질문드립니다.답이 될 변수 ret이 long long으로 선언되어야 한다는 점에 대해 생각해보면서 ret의 최댓값을 생각해봤습니다.언뜻 생각해봤을 때 해빈이가 가질 수 있는 의상의 수는 최대 30이므로 모든 의상의 종류가 다를 때의 경우의 수인 2^30-1 정도가 최댓값이 될거 같았습니다. 좀 더 생각해서 의상의 종류가 30개에서 조금 줄어든다면 답에서 지수 30이 29,28 줄어들고 대신 3, 4..가 곱해질텐데 그러면 값이 더 작아지는 것으로 생각되어 최댓값은 2^30 근처인 것으로 생각이 됩니다.하지만 int는 최대 2^31-1 까지 되는 것으로 알고 있어서 이 문제에서 가능할 거 같습니다.선생님께서 말씀하신 바는 경우의 수 문제처럼 한 변수에 계속 숫자를 곱해나가는 경우 팩토리얼처럼 매우 쉽게 숫자가 급격하게 커질 수 있고 이 문제에서처럼 가능하더라도 정확하게 범위를 생각하는 것보다 맘편하게 4바이트? 더 써서 안전하게 푸는게 좋다는 뜻일까요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
시분할과 스케줄링
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]얼마만큼 실행될지는 운영체제가 결정하는것을 스케줄링인데 그럼 스케줄링이 실행되고나서 시분할이 적용되는 방식인가요?
-
미해결하루 10분 한달완성 최적화이론 1
최적화이론 2
안녕하세요 최적화이론1을 거의 완강한 수강생입니다.강의중에 몇몇 내용들은 최적화이론2에서 다룰거라고 몇 번 말씀을 하셨는데, 아직 최적화이론2 강의가 있는거 같지 않아서 여쭤봅니다.혹시 최적화이론2 강의 계획이 있으신가요?최적화이론1 강의가 도움이 너무 많이 되어서 2 강의도 꼭 듣고 싶습니다.
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
[오타 제보] 11. 동시성 컬렉션.pdf 14페이지
[오타 내용]대상 강의록: 11. 동시성 컬렉션.pdf 대상 페이지: p.14 첫 번째 그림에 대한 설명 중 마지막 부분내용기존: 클라이언트인 test() 입장에서 ... (중략) ... BasicList의 어떤 구현체든지 다 받아들일 수 있다.변경: 클라이언트인 test() 입장에서 ... (중략) ... SimpleList의 어떤 구현체든지 다 받아들일 수 있다.강의 잘 듣고 있습니다!
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
서버 오류(?)
npm run start:dev 했을 때 오류는 안 나는데 'refresh'해도 스키마에 Tables에 table이 안 떠요..그래도 일단 진행해 봤는데 수업 노트 보고 api/axios.ts도 수정한대로 했는데 ERROR [ExceptionsHandler] No metadata for "User" was found. 이 오류가 뜨는데 어떻게 해결할 수 있을까요..이 오류 때문에 회원가입,로그인 눌러도 아무 반응이 없는 것 같아요. 아래 질문에 '[3-8]회원가입/로그인 오류' 글에 저와 같은 오류가 나오신 분이 있었는데 댓글봐도 해결을 못하겠네요
-
미해결스프링 부트 - 핵심 원리와 활용
실행하면 오류가 나면서 종료됩니다.
19-Feb-2025 22:14:57.625 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\cksgh\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]을(를) 배치하는 중 오류 발생 java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:602) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:654) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:635) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1889) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:530) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:421) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1629) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:870) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.startup.Catalina.start(Catalina.java:761) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) Caused by: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.StandardRoot@77659b30]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:406) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:179) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4121) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4243) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599) ... 37 more Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\cksgh\Desktop\공부자료\스프링 강의자료\스프링부트 핵심원리와 활용\boot-source-20230228\start\server\build\exploded] is not a directory or war file, or is not readable (it does not exist or permissions to access it are missing) at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:749) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:707) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ... 41 more19-Feb-2025 22:14:57.636 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\cksgh\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]의 배치가 [114] 밀리초 내에 완료되었습니다.19-Feb-2025 22:14:57.644 INFO [main] org.apache.coyote.AbstractProtocol.start 프로토콜 핸들러 ["http-nio-8090"]을(를) 시작합니다.19-Feb-2025 22:14:57.937 INFO [main] org.apache.catalina.startup.Catalina.start 서버가 [488] 밀리초 내에 시작되었습니다.http://localhost:8090/19-Feb-2025 22:18:24.376 INFO [Thread-1] org.apache.coyote.AbstractProtocol.pause 프로토콜 핸들러 ["http-nio-8090"]을(를) 일시 정지 중19-Feb-2025 22:18:25.117 INFO [Thread-1] org.apache.catalina.core.StandardService.stopInternal 서비스 [Catalina]을(를) 중지시킵니다.19-Feb-2025 22:18:25.120 INFO [Thread-1] org.apache.coyote.AbstractProtocol.stop 프로토콜 핸들러 ["http-nio-8090"]을(를) 중지시킵니다.19-Feb-2025 22:18:25.127 INFO [Thread-1] org.apache.coyote.AbstractProtocol.destroy 프로토콜 핸들러 ["http-nio-8090"]을(를) 소멸시킵니다.Process finished with exit code 130