분류 전체보기 73

[STS4] src/main/resources 의 static과 webapp의 차이

Spring Tool Suite 4 (STS4)에서 src/main/resources/static과 src/main/webapp 디렉토리에 정적 자원을 배치하는 것은 각각 다른 방식으로 처리됩니다. src/main/resources/static: Spring Boot 프로젝트에서 권장되는 위치로, 정적 자원(이미지, CSS, JavaScript 등)을 저장하는 데 사용됩니다. 클래스패스 상에 위치하기 때문에, 컴파일된 클래스 파일과 함께 JAR 파일 내에 포함됩니다. Spring Boot는 내장된 웹 서버를 통해 이 디렉토리의 자원을 정적 자원으로 제공합니다. 예를 들어, src/main/resources/static/css/style.css는 /css/style.css 경로로 웹 애플리케이션에서 접근 ..

지식 2024.01.31

Mac에서 STS3로 Spring Legacy Project로 Hello 띄우기

이번에는 STS3로 Spring Legacy Project를 생성하여 웹 브라우저에 Hello를 띄워볼 것이다. 제목에 언급했듯이 나는 보통 Mac에서 작업을 진행할 예정이다. JDK 11 Apache Tomcat 9 JDK와 Tomcat 버전은 이렇게 사용할 것이다. 맥 애플칩 환경이라 STS3를 실행하기까지 고된 시간이 필요했지만, 설치를 한 이후의 과정부터 정리를 해보겠다. 우선 STS3를 실행한다. 그다음 File -> New -> Spring Legacy Project를 눌러 새로운 프로젝트를 생성하자. 프로젝트 이름을 입력해 주고, Spring MVC Project를 클릭해 준 뒤, Next 버튼을 눌러준다. package를 입력할 때, 총 3 덩어리로 만들어 준다. 이렇게 하면 프로젝트 생성..

Spring 2024.01.29

스프링 프레임워크란?

자, 프레임워크가 무엇인지 조금은 알았으니 본격적으로 스프링 프레임워크에 대해 알아보자. IoC(제어의 역행-낮은 결합도)와 AOP(횡단관심-높은 응집도)를 지원하는 경량의 컨테이너 프레임워크 사실 스프링 프레임워크에 대한 설명이라면 위에 한 줄이면 끝이다. 하지만 지금은 공부하는 시간이니 조금 더 자세하게 알아보자. 스프링 탄생 배경 책을 보면 스프링 프레임워크의 가장 처음에 나오는 것이 바로 탄생 배경이다. 스프링 프레임워크는 로드 존슨이 2004년에 만든 오픈소스 프레임워크이고, 이 스프링 프레임워크가 등장하기 이전에 자바 기반의 엔터프라이즈 애플리케이션은 대부분 EJB(Enterprise Java Beans)로 개발이 되었다고 한다. 자, 생각을 해보자. 뭔가가 새로 나온다는 건 이전에 사용하던 ..

지식 2024.01.23

Could not publish server configuration for Tomcat v9.0 Server at localhost.Multiple Contexts have a path of "/biz".

Could not publish server configuration for Tomcat v9.0 Server at localhost. Multiple Contexts have a path of "/biz". 만들어둔 STS 프로젝트를 작업하기 위해 STS3를 실행시켰는데, 응용 프로그램을 열 수 없습니다.라는 팝업이 떴다. 이전에도 맥북에서 STS3를 사용할 때면 종종 떴는데, 이번에 나는 STS3를 다시 설치해 버렸다. (문제를 해결한 후에 다시 찾아보니 코드 서명의 문제로 인증을 해줘야 한다고 한다) 이미 나는 다시 설치를 해버렸고, 그것 때문인지 그전에는 보였던 화면이 이번에는 뜨지 않았다. 우선 나는 .metadata 폴더를 삭제하고 다시 실행해 보았는데, Servers만 남아있고 프로젝트 폴더..

error 2024.01.20

Spring MVC 수행 흐름

대부분의 MVC 프레임워크는 비슷한 구조를 가지고 있는데 그 중 Spring MVC에 대해 알아보자. 1. 클라이언트로부터의 모든 ".do" 요청을 DispatcherServlet이 받는다. 2. DispatcherServlet은 HandlerMapping을 통해 요청을 처리할 Controller를 검색한다. 3. DispatcherServlet은 검색된 Controller를 실행하여 클라이언트의 요청을 처리한다. 4. Controller는 비즈니스 로직의 수행 결과로 얻어낸 Model 정보와 Model을 보여줄 View 정보를 ModelAndView 객체에 저장하여 리턴한다. 5. DispatcherServlet은 ModelAndView로부터 View 정보를 추출하고, ViewResolver를 이용하여..

지식 2024.01.15

도대체 프레임워크가 뭐야?

프레임워크에 대해서 확실하게 알아보자 개발 공부를 하면서 '프레임워크'라는 단어를 얼마나 듣게 될까? 그렇게 들어도 도대체 프레임워크가 무엇인지 정확하게 감이 잡히질 않는다. 기본 JDBC로 CRUD는 해보았으니, 스프링으로 넘어가기 위해 프레임워크가 무엇인지 잡고 넘어가보자. 프레임워크란? 프레임워크의 사전적 의미는 뼈대 혹은 틀로 이 의미를 소프트웨어 관점에서 접근하면 아키텍처에 해당하는 골격 코드이다. 개발을 할 때 전체 애플리케이션의 구조를 결정하는 것이 바로 아키텍처이고, 이 아키텍처에 해당하는 골격 코드를 프레임워크가 제공하는 것이다. 한마디로 프레임워크는 개발에서 기본이 되는 뼈대나 틀을 제공하는 아키텍처라고 이해하면 될 듯 하다. (프레임워크 = 아키텍처) 자, 여러명의 개발자에게 '게임'..

지식 2024.01.12

CRUD 게시판 _조회수 카운트 추가하기

2024.01.02 - [백엔드] - CRUD 게시판 _update 추가하기 이전 포스팅에서 update를 추가하여 수정하기까지 가능해졌다. 이번에는 상세보기를 클릭할 때마다 조회수가 1씩 증가할 수 있도록 해보자. 방법은 많겠지만 나는 cntUpdate를 추가하여 작업을 해볼 것이다. 우선 상세보기를 클릭하고 들어왔을 때 조회수가 올랐는지 바로 확인할 수 있도록 basicBoard_detail.jsp 파일에 조회수도 추가해주었다. 다음으로 cntUpdate 메소드를 추가하자. 해당 레코드를 클릭했을 때 cnt를 + 1 해줄 것이기 때문에, boardNumber를 받아서 update만 해주면 되어 리턴은 필요없다. BasicBoardService.java BasicBoardServiceImpl.java ..

JSP 2024.01.08

CRUD 게시판 _update 추가하기

2023.12.28 - [백엔드] - CRUD 게시판 _getBoard 추가하기 이전 포스팅에서 getBoard를 추가하여 상세보기가 가능해졌다. 이번에는 수정을 할 수 있도록 update를 추가해보자. getBoard에서 받아놓은 값들을 수정하여 다시 vo에 담아 리턴없이 업로드 하는 과정이라 insert와 느낌이 비슷하다. 우선 basicBoard_detail.jsp 파일을 수정하자. 기존에는 그냥 table 작업만 되어 있었지만, 이제는 update를 위하여 table을 form에 넣고, 수정 버튼을 클릭하면 BasicBoardController의 U로 이동할 수 있도록 했다. 다음으로 수정할 것을 정해서 그 값을 input의 value로 넣어주었는데, 이 때, 파라미터로 수정된 값을 넘기기 위해서..

JSP 2024.01.02

CRUD 게시판 _getBoard 추가하기

2023.12.24 - [백엔드] - CRUD 게시판 _delete 추가하기 이전 포스팅에서 delete를 추가하여 레코드 삭제를 할 수 있게 되었다. 이번에는 update를 하기 위한 전초단계인 한 레코드 상세보기를 추가해보자. 우선 레코드 하나를 보여주어야 하기 때문에 레코드를 vo에 담아 리턴해 줄 것이고, 그 레코드를 찾기 위해 boardNumber를 받을 것이다. 원래는 기본게시판 목록에서 바로 보였던 내용을 빼고, 제목을 누르면 이동할 Detail 에서 보여질 수 있도록 했다. basicBoard_list.jsp 다음으로 BasicBoardDao 에 getBoard를 추가해 주었는데, 참고로 이전에 select는 getBoardList로 변경해주었다. BasicBoardDao.java Basi..

JSP 2023.12.28

CRUD 게시판 _delete 추가하기

2023.12.19 - [백엔드] - CRUD 게시판 _select 추가하기 이전 포스팅에서 select를 추가하여 웹에서 DB에 저장되어 있는 데이터를 가지고 와서 바로 확인할 수 있게 되었다. 그럼 이번에는 상대적으로 간단한 delete를 추가해보자. 우선 insert와 마찬가지로 삭제만 하면 되기 때문에 리턴할 것은 없고, 삭제할 레코드를 찾아야 하기 때문에 파라미터로 boardNumber를 받을 것이다. 이전에 작업했던 코드에 이번 작업을 추가할건데, 앞으로는 코드가 너무 길어질 경우 전체 코드가 아닌 추가된 부분만 추가할 것이다. 우선 basicBoard_list.jsp에 삭제 버튼을 추가해 버튼을 클릭하면 해당 레코드가 삭제될 수 있도록 추가해보자. basicBoard_list.jsp 이때, ..

JSP 2023.12.24