5달 전 · 박정환 님의 새로운 댓글
스프링부트 로컬 환경에서는 되지만, 배포 환경에서 404 에러가 발생합니다.
안녕하십니까 선배님들. 스프링부트 API 서버를 개발하고 배포하였는데 다음과 같은 문제가 발생하였습니다. 로컬 환경에서는 잘 작동하지만, 배포 환경에서 특정 POST 요청에서 404에러가 발생하는 문제였습니다. 해당 요청은 JSON을 반환하는 컨트롤러입니다. 서핑을 하던 중, Spring Security의 CSRF의 문제일 수도 있다고 하던데 저는 현재 Security를 사용하지도 않고 다른 POST 요청은 잘 응답하여 뭐가 원인인지 잘 모르겠습니다. 아래는 application.yaml과 Controller 코드입니다. 감사합니다. // application.yaml spring: application: name: tika servlet: multipart: max-file-size: 50MB max-request-size: 50MB
개발자
#스프링
#자바
답변 1
댓글 2
조회 79
일 년 전 · 삭제된 사용자 님의 새로운 답변
SSAFY(싸피) vs LG DX School vs 네이버 부스트캠프
인서울 대학의 전자공학과에서 생성형 AI 관련 연구(이미지 생성)로 석사를 졸업 후 29살이지만 자신감이 부족해서 부트캠프를 고려하고 있습니다. (이미지 생성 개발자를 찾는 사람도 없고... 참 연구주제 선택이 후회되네요) 1. SSAFY: 데이터 트랙 / https://www.ssafy.com/ksp/jsp/swp/swpMain.jsp 2. LG DX School / https://dxschool.co.kr/ 3. 네이버 부스트캠프 AI 테크 / https://boostcamp.connect.or.kr/program_ai.html 위 세 가지 중 선배님들은 어떤 부트캠프를 추천하시나요? 그저 바람이지만 데이터사이언티스트 쪽이면 좋겠네요,,, 정보 및 고민: 1. 싸피의 데이터트랙은 이번이 첫 기수입니다. 따라서 정보가 전혀 없는데, 데이터사이언티스트 교육이 아닌 데이터엔지니어 교육일까 걱정이네요. 2. LG DX School또한 첫 기수인데, Java, Spring, jsp/servlet, Flutter이 커리큘럼에 있어 망설여지네요. 3. 부스트캠프는 AI 전문코스이며 CV, NLP, RecSys의 세 가지 선택지가 있습니다. 이미지 생성쪽이 없는게 아쉽네요,,
개발자
#부트캠프
#싸피
#lg
#네이버
#ssafy
답변 3
댓글 0
추천해요 1
조회 1,686
일 년 전 · cozy 님의 답변 업데이트
Java Servlet 공부해야하는가
안녕하세요 자바공부를 끝내고 백엔드에 관심이 생겨 spring 공부를 하려는 컴공과 3학년 학생입니다 학교에서 전공공부를 진짜 겉핣기식 으로해서 지금 cs지식도 없고 프로젝트도 없고 학년도 높고 기술스택도 없어서 굉장히 많이 늦었다 생각합니다 Spring 공부를 바로 하려는데 어떤분들은 jsp servlet 공부를 먼저 하라고 하십니다 Spring boot 김영한님의 5시간짜리로 전체적인 청사진을 보여주는 무료강의를 들어보니 이해가 어렵습니다 그러면 servlet을 먼저 공부하는게 맞겠지요?? 아니면 시간이 없으니 김영한님의 spring강의로 바로 넘어가야할까요??
개발자
#백엔드
#java
#servlet
답변 1
댓글 1
조회 153
5달 전 · Katie 님의 답변 업데이트
국비 수료후 취업이 힘들어 다른 직종으로 변경해야하나 고민입니다..
안녕하세요. 고졸 비전공자 26 남 입니다. 23년 12월 국비 수료후 4개월간 개인사정이 있어 공백이 있었고 어느정도 해결된 뒤 다시 개발 공부를 시작했습니다. 국비 학원에서 배운 스택은 안드로이드 앱개발 + servlet 기반 웹 개발이고 해당 기술로 프로젝트 진행해서 포트폴리오를 작성했습니다. 수료했을 당시에도 취업시장이 좋지않았고 신입에게 요구되는 기술스택 또한 학원에서 배운 기술로는 많이 부족하다 생각해서 추가적인 학습이 필요하다 판단했습니다. 그래서 spring boot, jpa, 타임리프를 기반으로 한 개인프로젝트 진행 후 jwt, aws, ci/cd 까지 학습을 목표로하고 기술을 활용한 프로젝트 진행, 포트폴리오에 추가 그리고 이력서 지원하는 전략으로 계획하고 있었습니다.. 하지만 제가 학습을 목표로 한 기술스택을 보유한 신입도 취업이 힘들다는 얘기를 보았습니다.. 중요한 건 화려한 기술스택이 아닌 얼마나 깊이있게 이해했는지가 중요한 건 저도 잘 이해하고 있습니다.. 그치만 학습을 마치고 이력서를 보완한다고 한들 취업에 성공할 수 있을거라는 희망적인 미래가 보이지않기때문에 동기부여도 잘 안되고 다른 직종을 알아봐야하나 고민입니다.. 솔직히 개발에 재능이 있는 지 잘 모르겠습니다. 하지만 사고하는 걸 좋아하고 복잡한 고민끝에 작성한 코드가 제 의도대로 동작하는 모습이 좋습니다.. 학원에서 수업도 재미있게 들었고 "왜 이제야 개발공부를 했을까? 진작 해볼걸" 라고도 생각했습니다.. 좋아하면 계속 그냥 하면 되는 거 아닌가 싶습니다만.. 나이도 제법 먹고 이뤄낸 것이라곤 군복무 밖에 없습니다.. 그래서 하루하루 초조하고 뭔가 이뤄내고 싶다가도 암울한 미래에 사기가 떨어지네요.. chat gpt 가 나온 이후로 신입의 일자리가 많이 사라진 지금. 지금이라도 다른 직종을 알아보는 게 좋을까요.. 긴 글 읽어주셔서 감사합니다. 착잡하고 불안한 마음에 다소 부정적이고 정신없게 글 작성한 거 같아 죄송합니다. 😭 진심어린 조언 해주시면 감사하게 듣겠습니다. (추가적으로 개발 공부를 쭉 하는 방향을 추천 하신다면 어떤 공부를 어느정도 깊이로 해야하는지 방향을 잡아주셨으면 합니다.. 현재 spring boot + jpa 활용해서 개인프로젝트 개발 계획중입니다. 간단한 crud는 가능한 정도로 학습했습니다.)
개발자
#고민
#직종변경
#비전공자
#고졸신입
답변 3
댓글 0
추천해요 3
조회 1,966
일 년 전 · 장성호 님의 답변 업데이트
docker container 내부의 spring boot 서버에서 client 의 ip 주소 알아내는 방법
안녕하세요 지금 만들고 있는 서비스가 설치형 어플리케이션에, 리눅스 파일 시스템을 사용해야해서 처음부터 docker 환경으로 spring boot 서버 환경을 세팅하고 시작했습니다. 순조롭게 진행하다가 한 부분에서 막히게 되었는데요, spring boot 서버 내에서 현재 요청한 클라이언트의 ip를 기존에 등록한 아이피와 비교하여 다른 아이피일 경우 요청을 거부하는 보안 로직을 구현해야하는 부분입니다. 문제가 되는 부분은 요청한 클라이언트의 ip를 알아내는 부분인데요 원래 하던것과 같이 HttpServletRequest 객체에서 getRemoteAddr() 메소드를 호출하여 아이피를 출력해보니 클라이언트의 아이피가 아닌 다른 아이피가 잡히는겁니다. 정황상 host 에서 컨테이너로 포트포워딩을 하다보니 본래 클라이언트의 아이피가 아니라 Docker 네트워크의 아이피가 나온 것 같습니다. 혹시라도 포워딩 헤더가 있을까 하여 헤더를 까봤지만 헤더에 있지도 않더라구요.. GPT에게 자문을 구해보니 두가지를 추천해주더군요. 1. container의 network를 host로 설정하라 이건 알아보니 리눅스에서만 작동하는거랍니다 제 어플리케이션은 리눅스에 설치될수도 있고 윈도우에 설치될 수도 있는데 말이죠.. 2. Nginx 같은 프록시 서버를 둬라 호스트에 프록시를 둬서 본래의 아이피를 헤더에 추가하든 어떻게든 해서 본래의 아이피를 스프링에 전달해주라는 말로 이해했습니다. 플랫폼 독립적으로 설치하기 위해서 Docker를 채용했는데 호스트에 추가적인 서버를 설치하라뇨… 이것도 좀 아닌 것 같습니다.. 막막합니다… 괜히 Docker 들여왔나 싶기도 하고, 보안 인증때문에 이 기능을 지원 안할수도 없고.. 도와주십쇼..!
개발자
#docker
#spring-boot
답변 1
댓글 5
조회 1,275
일 년 전 · 이희수 님의 질문
Spring 파일 업로드 용량제한
안녕하세요 백엔드 개발자를 꿈꾸며 공부중인 학생입니다. 프로젝트 제작중에 파일 업로드 부분을 공부하고있는데 업로드 파일 사이즈 제한 방법으로 application.properties 에서 spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB 이런식으로 용량을 바꿔주는식으로 해결하는 방식이 거의 주로 나오더라고요.. 이 방식으로는 지정한 값보다 큰 파일 업로드에러를 막을수 없다고 생각이 들었습니다. 파일크기 제한으로 IOExeption 도 걸어놓았는데, 큰 파일 업로드 시도시 거기까지 가지도 못하는건지 에러가 발생하면서 페이지가 터지네요. 아무리 찾아봐도 다른 방식은 잘 보이지않는데 실무에서는 업로드 제한이 어떤 방식으로 이루어지는지 궁금합니다! ㅠㅠ
개발자
#spring
#java
답변 0
댓글 0
조회 348
일 년 전 · 다형 님의 답변 업데이트
aws spring boot 배포 오류
안녕하세요 백엔드 공부 중인 학생입니다. aws ec2로 Spring boot 프로젝트를 배포 시도 중에 있습니다. (maven, java 8, jar) java -jar jar파일명.jar 명령어로 배포 시도 중에 에러메세지가 도저히 해결이 안되어서 도움 요청드립니다.. 도와주신다면 감사하겠습니다.. 아 참고로 rds로 데이터베이스 생성하지 않고 mysql(workbench)로 데이터베이스 생성했습니다 <오류메세지> Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2024-02-07 04:33:35.742 ERROR 31012 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.22.jar!/:5.3.22] at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_392] at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-2.7.2.jar!/:2.7.2] at com.se.social.SocialApplication.main(SocialApplication.java:13) [classes!/:0.0.1-SNAPSHOT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_392] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_392] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_392] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_392] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:229) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.22.jar!/:5.3.22] ... 22 common frames omitted Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed at org.apache.catalina.core.StandardService.addConnector(StandardService.java:238) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:213) ~[spring-boot-2.7.2.jar!/:2.7.2] ... 24 common frames omitted Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1077) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.catalina.core.StandardService.addConnector(StandardService.java:234) ~[tomcat-embed-core-9.0.65.jar!/:na] ... 26 common frames omitted Caused by: java.net.SocketException: Permission denied at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_392] at sun.nio.ch.Net.bind(Net.java:461) ~[na:1.8.0_392] at sun.nio.ch.Net.bind(Net.java:453) ~[na:1.8.0_392] at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222) ~[na:1.8.0_392] at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:275) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:230) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1227) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1313) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:614) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.catalina.connector.Connector.startInternal(Connector.java:1074) ~[tomcat-embed-core-9.0.65.jar!/:na] ... 28 common frames omitted <전체> . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.2) 2024-02-07 04:33:27.975 INFO 31012 --- [ main] com.se.social.SocialApplication : Starting SocialApplication v0.0.1-SNAPSHOT using Java 1.8.0_392 on ip-172-31-39-15 with PID 31012 (/home/ubuntu/socialboardPJ/target/social-0.0.1-SNAPSHOT.jar started by ubuntu in /home/ubuntu/socialboardPJ/target) 2024-02-07 04:33:27.980 INFO 31012 --- [ main] com.se.social.SocialApplication : No active profile set, falling back to 1 default profile: "default" 2024-02-07 04:33:29.591 INFO 31012 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2024-02-07 04:33:29.681 INFO 31012 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 76 ms. Found 1 JPA repository interfaces. 2024-02-07 04:33:30.960 INFO 31012 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 80 (http) 2024-02-07 04:33:30.986 INFO 31012 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-02-07 04:33:30.987 INFO 31012 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.65] 2024-02-07 04:33:31.641 INFO 31012 --- [ main] org.apache.jasper.servlet.TldScanner : At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 2024-02-07 04:33:31.880 INFO 31012 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-02-07 04:33:31.880 INFO 31012 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3717 ms 2024-02-07 04:33:32.215 INFO 31012 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2024-02-07 04:33:32.569 INFO 31012 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2024-02-07 04:33:32.659 INFO 31012 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2024-02-07 04:33:32.822 INFO 31012 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.10.Final 2024-02-07 04:33:33.157 INFO 31012 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2024-02-07 04:33:33.383 INFO 31012 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect 2024-02-07 04:33:34.255 INFO 31012 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2024-02-07 04:33:34.266 INFO 31012 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2024-02-07 04:33:34.906 WARN 31012 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2024-02-07 04:33:35.616 WARN 31012 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server 2024-02-07 04:33:35.620 INFO 31012 --- [ main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2024-02-07 04:33:35.624 INFO 31012 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2024-02-07 04:33:35.646 INFO 31012 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 2024-02-07 04:33:35.650 INFO 31012 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2024-02-07 04:33:35.676 INFO 31012 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2024-02-07 04:33:35.742 ERROR 31012 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.22.jar!/:5.3.22] at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_392] at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.22.jar!/:5.3.22] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-2.7.2.jar!/:2.7.2] at com.se.social.SocialApplication.main(SocialApplication.java:13) [classes!/:0.0.1-SNAPSHOT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_392] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_392] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_392] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_392] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) [social-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:229) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.22.jar!/:5.3.22] ... 22 common frames omitted Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed at org.apache.catalina.core.StandardService.addConnector(StandardService.java:238) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282) ~[spring-boot-2.7.2.jar!/:2.7.2] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:213) ~[spring-boot-2.7.2.jar!/:2.7.2] ... 24 common frames omitted Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1077) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.catalina.core.StandardService.addConnector(StandardService.java:234) ~[tomcat-embed-core-9.0.65.jar!/:na] ... 26 common frames omitted Caused by: java.net.SocketException: Permission denied at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_392] at sun.nio.ch.Net.bind(Net.java:461) ~[na:1.8.0_392] at sun.nio.ch.Net.bind(Net.java:453) ~[na:1.8.0_392] at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222) ~[na:1.8.0_392] at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:275) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:230) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1227) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1313) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:614) ~[tomcat-embed-core-9.0.65.jar!/:na] at org.apache.catalina.connector.Connector.startInternal(Connector.java:1074) ~[tomcat-embed-core-9.0.65.jar!/:na] ... 28 common frames omitted
개발자
#aws
#springboot
#배포
답변 1
댓글 0
조회 614
일 년 전 · 김태현 님의 새로운 댓글
sql문 부적합합니다..
spring boot 4 에서 웹개발프로젝트를 진행중입니다.. jsp페이지에서 받아온 searchText값을 쿼리문으로 비교 후 foodinfolist를 반환해주는데 sql developer에서는 SELECT * FROM foodinfolist WHERE food_name LIKE '%' || '치킨' || '%'; 해당 코드가 정상동작 돼서 잘 검색하지만 mapper.xml에서 <mapper namespace="com.springproj.dietwebservice.repository.IFoodInfoDAO"> <select id="findfoodinfo" parameterType="java.lang.String" resultType="com.springproj.dietwebservice.domain.FoodInfoVO">> <![CDATA[ SELECT * FROM foodinfolist WHERE food_name LIKE '%' || #{searchText} || '%' ]]> </select> </mapper> 해당 코드를 실행하면 sql문이 부적합합니다 라고 에러가 발생합니다.. 뭐가 문제인지 모르겠습니다.. searchText: 치킨 으로 데이터도 잘 담겨오는데.. [2m2024-01-31T16:24:22.500+09:00[0;39m [31mERROR[0;39m [35m8208[0;39m [2m---[0;39m [2m[nio-8090-exec-9][0;39m [2m[0;39m[36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00900: SQL 문이 부적합합니다 선배님들 조언부탁드립니다..
개발자
#sql
#spring-boot
답변 4
댓글 2
추천해요 1
조회 588
일 년 전 · 익명 님의 질문 업데이트
고졸 국비출신이 취업할수있는방법
안녕하세요, 고졸이며 현재 국비학원에서 풀스택(이지만 실상은 백엔드에 가까운것같습니다.)수업을 듣고있는 개발자 지망생입니다. 현재 학원에선 Spring boot 진도를 시작하여 2주정도 뒤에 끝내고 3주간의 기간 동안 세번째 프로젝트를 마지막으로 수료하게 됩니다. 현재 학원 수료까지 한달정도가 남아있는 상태에서 원내에서 팀 프로젝트를 두개정도 진행했습니다. 팀별로 주제는 달랐지만 제가 속한 팀은 java에서 웹소켓을 이용해서 채팅프로그램을 만들었구요(사실 아직까지도 해당 개념은 잘 모르겠습니다.), 그리고 두번째 프로젝트에선 전자결재 기능을 포함한 간단한 인사관리 웹사이트를 java servlet과 jsp를 이용해서 만들었습니다. 교육과정이 부족하다고 느껴져서 저 개인적으로 Spring boot를 공부해서 두번째로 만들었던 프로젝트를 스프링 부트로 바꾸기도 해보고 학원에선 오라클DB를 사용했었는데 MariaDB도 혼자 사용해보며 익히고있습니다. 현재는 Spring Secyrity와 JWT를 이용해서 Role에 따라서 진입가능한 주소가 다른 간단한 게시판 하나 만들었습니다. 그리고 만들어진 사이트를 AWS에 올려보려고 혼자서 이것저것 찾아보고있습니다. 두번째 프로젝트를 마무리하며 만들어진 포트폴리오와 이력서를 들고 60-70개의 기업에 지원을 해봤지만 돌아오는건 열람했다는 메일과 불합격 통지뿐이네요. 여기서 제가 개인적으로 공부를 해나간다거나 혹은 기업에서 선호할만한 기술이 있을까요? 저는 지금 배우고 발전하는 과정이 너무 재밋어서 관련 직종으로 꼭 취업을 빠른시일내에하곤 싶은데 시장이 안좋단 얘기도 너무 많고 분명 대졸자들이 저보다 더 좋은 조건이기에 불안한것도 사실입니다. 그리고 그들에 비해 기초지식이 부족한것도 인지하고있고요. 사설이 너무 길었다면 죄송합니다. 다만 구체적으로 설명드려야 더 좋은 답변을 받을수 있다고 생각해서 길게 적었습니다. 다들 새해엔 복 많이 받으시고 행복한 일 많으시길 바랍니다.
개발자
#학원
#고졸
답변 1
댓글 2
추천해요 1
조회 413
2년 전 · 이양일 님의 답변 업데이트
자바 ㅡ 인터셉터와 필터 사용
현재 자바로 진행 중인 프로젝트에서 필터에서는 로그인 체크 및 user 각각을 분류하고 ex) 의료진이라면 의사,임상병리사,연구자 등으로 분리하고, 인터셉터에서는 각 컨트롤러에 들어오는 Api요청들의 허가 관리를 하려고 합니다. 필터와 인터셉터는 실행시점이 servlet 이전, 이후 시점이라는 것이 다르다는 것만 알고, 구체적으로 이렇게 실행했을 때 어떤 이득이 생길지, 이득의 여부조차도 쉽게 판단하기 어렵네요. 큰 이득이 없을 경우 인터셉터에서 전부 처리하려 하는데 조언 좀 부탁드립니다.ㅠㅠ
개발자
#spring
#java
답변 2
댓글 0
추천해요 26
보충이 필요해요 1
조회 4,020
2년 전 · 익명 님의 새로운 댓글
개발자의 업무범위에 대해서
안녕하세요. 작은 중소 솔루션 회사에서 30살이라는 적지 않은 나이에서 2년차 웹 개발자로 일하고 있습니다. 입사 당시 프로그래밍을 독학으로 공부하다보니 Spring이나 웹 MVC패턴이라는 개념도 모른채 그저 servlet과 jsp만으로 제가 만들고 싶은 웹을 다만들어서 jsp 안에 모든 서비스 로직과 화면 렌더링을 주구장창 다때려박으면서 그저 DB와 java 정도만 알고 있던 상태임에도 불구하고 지금의 회사에서 입사하여 입사하자마자 Spring을 공부할 시간을 1달가량 받고 그때부터 제대로 MVC패턴과 Spring 프레임워크를 통해서 간단한 게시판을 만들어낸 것을 이후로 지금은 회사를 다니면서 javascript와 ElasticSearch 등을 많이 접하고 사용하면서 프론트와 백엔드 구분없이 개발을 해왔고 그에 따라서 많은 성장할 수 있었습니다. 이런점에서는 회사에 대해서 정말로 감사하게 생각하고 있습니다. 하지만 8개월쯤부터 아무래도 회사가 성장함에 따라 고객사에 늘어남과 동시 고객지원 및 솔루션 납품 설치 업무를 할일이 많아지게 되었고 자연스럽게 개발업무의 비중이 줄어들고 있습니다. 어떤날은 하루에 1시간도 코드를 못볼 때도 종종있고 한달에 많으면 4~5번을 고객사로 출장을 가게되는게 지금 현상황입니다. 물론 솔루션 납품과 설치를 위해서 리눅스를 알아야하고 회사 제품을 더많이 이해되면서 개발을 진행할 때도 고려하지 못했던 부분들을 고려하게 됨에 따라 생각도 넓어지고 인프라적인 요소들도 많이 알게되어서 배우는 점은 분명하게 있지만서도 계속 이회사를 다닌다고 해서 개발자로 성장할 수 있을까? 라는 고민이 듭니다. 백엔드와 프론트엔드 개발 구분없이 풀스택 개발자 처럼 개발 업무를 진행 해야하는점도 전문성이 결여되는 느낌이 들고 다들 너무나 바쁘다보니 코드 리뷰, 테스트 코드 작성 이런건 전혀이루어지지 않고 회사에서 원하는 화면과 기능 등을 정해진 일정도 없이 고객사 출장이 없으면 없는대로 있으면 있는대로 일정을 알아서 도출해서 완료하고 하는대로 되는대로 이루어지고 있습니다. 백엔드 프론트엔드 구분 없이 개발하거나 코드리뷰나 테스트 코드 이런거는 사실 바라지도 않습니다. 요즘 ChatGPT가 얼마나 좋은가요 제가 작성한 코드에 대해서 ChatGPT를 통해서도 리뷰를 받아볼 수 있고 이러하니 백엔드 프론트엔드 구분없는 것은 오히려 웹개발의 전반적인 과정을 경험할 수 있으니 오히려 좋다고 생각하고 있습니다. 하지만 고객 지원(전화응대, 이메일, 서버 납품및 설치와 정기점검을 위한 출장 및 외근)의 범위가 넓어지고 하다못해 세금계산서 발행 처리와 관련된 문의도 대신 받아서 해당 담당자에게 전달하는 이메일까지도 받습니다. 고객사 출장이 잦아지다보니 어떤날은 1~2시간 코드를 보면 많이 보는날도 종종 생기고 개발업무를 하다가도 전화받고 이메일 확인 때문에 개발자체에 집중하기도 어렵습니다. 개발에만 집중해서 성장하기에도 시간이 부족한데 개발업무는 개발업무대로 주면서 이러한 고객지원업무까지 하려니 회사에 대한 고마움은 사라진지 오래고 정이 떨어졌습니다. 사실 개발업무도 수시로 요구사항이 변하니 원하는 대로 개발해놓고 가져가면 갑자기 말을 바꿔서 다른 방식이나 기능을 언급하면서 일을 2번하게 되는 일도 허다해서 정말 짜증이 너무나서 이제는 제가 알아서 회의가 끝나서 회사의 요구사항을 정리하고 난 뒤 ppt로 화면정의서 같은거를 대충 만들어서 이렇게 개발해서 보여드리면 될까요? 확인받고 진행을 하게 되더군요. 작년만 하더라도 시키지도 않은 일도 아랑서 잘 깔끔하게 하려고하고 회사에 대한 애정이 정말 있었지만 이로인해서인지 몰라도 이제는 출근해서 회의를 하면 기분이 않좋아지고 회의가 하기싫어집니다. 요즘엔 이런식으로 계속 회사를 다니면 개발자로는 물경력이 될 것같다는 생각이 너무나 확고하게 자리잡았습니다. 물론 회사에다가도 이야기는 했습니다. 개발업무외에 고객지원 업무 때문에 개발업무에 집중이 안된다. 고객사나가는 것이 부담스럽다. 첫회사였고 애정이 있던 회사였던지라 섣부르게 퇴사를 고민하는 것이 아닌가라는 생각이 들고 있는데 어떻게 해야할까요?
개발자
#개발자-업무범위
답변 1
댓글 1
추천해요 1
조회 754
2년 전 · 커리어리 AI 봇 님의 새로운 답변
순수 JSP 파일에서 'HttpServlet not found' 오류가 발생할 때 해결 방법
깃에 올라가 있는 파일을 받았는데 자꾸 이런 오류가 뜹니다.. The superclass ""jakarta.servlet.http.HttpServlet"" was not found on the Java Build Path 오류 검색했는데 메이븐 빌드하라고 하던데.. 순수 jsp라서요 어떻게 해 봐야 할지 모르겠습니다.
개발자
#git
#error
#maven
답변 1
댓글 0
조회 181
일 년 전 · 익명 님의 질문 업데이트
java 개발 독학 방향성
두 달 정도 독학으로 java를 공부하고 있습니다. 인터넷 강의를 통해서 java 기본 문법을 다 봤는데요 이 다음 어떤 공부를 해야하는지 막막합니다. 커리큘럼 상으로는 java network 관련 인데 이부분은 너무 어려운 것 같아서 문법 이외의 공부를 선행하고 돌아오려고 합니다. 유투브에 검색해보니 java 문법 다음에는 jsp나 servlet을 공부하는 것 같더구요 근데 또 스프링을 바로 배워도 괜찮다는 얘기도 있어서 어떻게 방향을 잡아야 할지 궁금합니다. 선배 개발자님들 좋은 조언 부탁드립니다
개발자
#java
답변 1
댓글 1
조회 394
3년 전 · 익명 님의 새로운 댓글
SI 신입이 가져야 할 능력(역량)은 무엇인가요?
국비학원에서 html, css, js 기초와 간단한 실습 부터 , mysql 쿼리를 배우고(join과 index를 제외하고 기본 문법만 숙지하고 있습니다.) servlet ,jsp를 배우고 이번에 배우고 있는 Sping boot를 마지막으로 국비 수업 수료를 앞두고 있습니다. Python과정은 기초 문법과 R언어, Beautiful Soup로 크롤링을 하는 법을 배웠습니다. 빠르게 돈을 벌고 싶어서 수료 후, 바로 취업 활동에 들어갈 것 같습니다. 그런데 아직 게시판 조차 따라치기만 하는 코드 몽키..가 된 거 같습니다. 아마 SI쪽으로 가려는 데, 처음에 겪을 데미지를 최소한으로 줄이고 싶습니다(덜 얻어맞고 싶네요..) 프로젝트는 국비학교에서 진행하는 프로젝트만 진행중입니다. 전자 도서관 홈페이지를 참고 삼아서 간단한 홈페이지를 구현하는 건데요. 수업에 들었고 한번 쳐봤던 자료들을 긁어모아 아주 간단한 기능만 넣고 만드는 중입니다. Q.SI신입은 무엇을 준비해야 할까요? Q.코드몽키 수준을 넘어가려면 어떻게 해야 할까요?
개발자
#국비교육
#비전공자
답변 1
댓글 1
추천해요 12
조회 1,337