Back-End
-
[SpringBoot] IntelliJ 프로젝트 cmd로 빌드하기Back-End/Spring Boot 2022. 9. 26. 14:54
프로젝트를 IntelliJ에서 쉽게 run 통해 빌드할 수 있지만, 만약 프로젝트를 배포한다면 cmd로 실행할 줄 알아야한다. 그 과정에 대해 정리해볼까 한다. 1. cmd 창 실행 window + r 에서 cmd 검색 일단 cd spring-study처럼 c드라이브 사용자에서 스프링 프로젝트가 있는 폴더에 접근한다. 명령어는 cd 2. gradlew.bat build 입력 후 cd build 입력. os를 사용하고 있어 cd libs가 아닌 dir을 입력해야 한다. 아래 참조 3. dir을 입력하면 해당 디렉터리의 jar 파일 목록을 보여준다. 아래 실행하고자 하는 파일 이름 확인 후 복사해서 아래와 같이 실행하면 빌드 완료! java -jar 프로젝트 이름 IntelliJ로 실행했을때와 똑같이 서버가..
-
[SpringBoot] IntelliJ로 프로젝트 생성 후 실행 방법 ( +Gradle)Back-End/Spring Boot 2022. 9. 26. 14:44
Spring Boot 프로젝트 생성 Spring Legacy Project로 프로젝트를 생성하면 pom.xml에 의존할 라이브러리들을 모두 입력해줘야했다. 여간 번거로운 작업이 아니었기에,, 하지만 부트를 이용하면 클릭 설정 한 번으로 다양한 라이브러리들을 사용할 수 있다. https://start.spring.io/ 위의 페이지에 들어가면 아래와 같은 창이 나온다. 프로젝트 방식과 사용 언어 Spring Boot 버전 데이터 Dependencies를 입력할 수 있다. 스프링 버전을 선택할때는 2.7.5(SNAPSHOT)과 같이 버전 뒤에 괄호가 있는 것은 정식 버전이 아니므로 선택하지 말고, 2.7.4처럼 뒤에 괄호가 없는 것을 선택한다. Group은 보통 기업명, Artifact는 프로젝트명을 입력한..
-
[Spring Framework] 정의와 특징 ( DI, IoC, AOP)Back-End/Spring Legacy 2022. 9. 20. 10:51
스프링프레임워크 (Spring Framework) : 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 스프링(Spring)이라고 불린다. 동적인 웹 사이트 개발하기 위한 여러가지 서비스를 제공한다. 스프링 프레임워크란? 1. 자바(JAVA) 엔터프라이즈 개발을 위한 오픈소스 애플리케이션 프레임워크이다. 2. 종속 객체를 생성해주고, 조립할 수 있는 프레임워크이다. 3. 자바 SE로 된 자바 객체(POJO)를 자바 EE에 의존적이지 않게 연결해준다. 더보기 - JavaSE (Standarad Edition) : 가장 기본이 되는 표준 에디션으로 JDBC, GUI, 네트워크 등 각종 API를 이용해 개발이 가능하다. - JavaEE(Enterprise Edition) : Java SE 플랫폼 위에 구..
-
[5-ch18 Spring AOP] 설정, execution, args, @Around, @before, @AfterThrowingBack-End/Spring Legacy 2022. 9. 7. 14:50
이전 포스팅에서 AOP 개념에 대한 설명을 적어봤다. 이번엔 AOP가 그래서 어떻게 사용되는건데?에 대한 궁금증을 풀어보려고 한다. AOP기능은 주로 일반적인 Java API를 이용하는 클래스(POJO-Plain OldJava Object)들에 적용한다. Controller에 적용이 불가능한 것은 아니지만, Controller의 경우 인터셉터나 필터 등을 이용한다. 포스팅에 적어볼 예제에서는 서비스 계층에 AOP를 적용한다. AOP 기능 구현 과정 1. 타깃(Target) 클래스 지정 -> 핵심코드로 아래 예제에서는 SampleServiceImpl이 핵심 코드 2. 어드바이스(Advice) 클래스 지정 -> LogAdvice 3. root-context.xml에서 빈 생성, aspectj 설정 1. 타깃..
-
[5-ch18 Spring] AOP 개념, 용어(JoinPoint, Pointcut, Advice..)Back-End/Spring Legacy 2022. 9. 7. 11:02
AOP란? AOP는 흔히 '관점 지향 프로그래밍' 이라고 불린다. 이때 '관점(Aspect)'이라는 용어는 개발자들에게 '관심사(concern)'라는 말로 통용된다. '관심사'는 개발 시 필요한 고민이나 염두에 두어야 하는 일이라고 생각할 수 있다. 예를들어 - 파라미터가 올바르게 들어왔을가? - 이 작업을 하는 사용자가 적절한 권한을 가진 사용자인가? - 이 작업에서 발생할 수 있는 모든 예외는 어떻게 처리해야 하는가? 위와 같은 고민들은 '핵심 로직'은 아니지만, 코드를 온전하게 만들기 위해 필요한 고민들이다. 전통적인 방식에서는 개발자가 반복적으로 이러한 고민들을 코드에 반영하게 된다. AOP는 이러한 고민에 대한 문제를 조금 다른 방식으로 접근한다. AOP가 추구하는 것은 '관심사의 분리(sepe..
-
[4-ch17 댓글 처리 ④] 댓글의 페이징 처리 (인덱스 생성, 화면 처리)Back-End/Spring Legacy 2022. 9. 6. 14:01
앞의 포스팅에서는 해당 게시물의 전체 댓글을 가져와서 화면에 출력한다. 문제는 댓글의 수가 엄청 많을 경우이다. 댓글 숫자가 많다면 데이터베이스에서 많은 양의 데이터를 가져와야 되고, 이는 성능상의 문제를 가져올 수 있다. 데이터베이스의 인덱스 설계 댓글에 대해 우선적으로 고려해야 하는 일은 tbl_reply 테이블을 접근할 때 댓글의 번호(rno) 중심이 아니라, 게시물 번호(bno)가 중심이 된다는 점이다. 댓글을 조회할 때에는 해당 게시물의 댓글을 가져오기 때문에 'tbl_reply where bno = 200 order by rno asc'와 같은 방식으로 접근하게 된다. 효율을 높이고 싶다면 게시물의 번호에 맞게 댓글을 모아서 빠르게 찾을 수 있는 구조로 만드는 것이 좋다. 위와 같은 구조를 이..
-
[4-ch17 댓글 처리 ③] jQuery와 Ajax 처리, JavaScript 모듈화Back-End/Spring Legacy 2022. 9. 1. 20:25
JavaScript 모듈화 화면에 사용되는 jQuery는 막강한 기과 다양한 플러그인을 통해 많은 프로젝트에서 기본으로 사용된다. 특히 Ajax를 이용하는 경우 jQuery의 함수를 이용해서 쉽게 사용할 수 있기 때문에 많이 사용한다. 화면 내에서 JavaScript를 처리하다 보면 어느 순간 이벤트 처리와 DOM 처리, Ajax 처리 등이 마구 섞여 유지보수 하기 힘든 코드를 만드는 경우가 있다. 이런 경우를 대비해 좀 더 JavaScript를 하나의 모듈처럼 구성하는 방식을 이용하는 것이 좋다. webapp 내 resources 폴더에 js 폴더 내 reply.js 파일을 작성한다. reply.js 파일은 게시물의 조회 페이지에서 사용하기 위해 작성된 것이므로, views/board/get.jsp 파..
-
[4 -ch17 댓글 처리 ② ] 서비스 영역과 Controller 처리 (@RequestBody, @PathVariable, consumes, produces )Back-End/Spring Legacy 2022. 9. 1. 17:10
게시판에서 게시글을 클릭했을 때 나오는 게시글 상세보기 페이지에서 댓글을 처리하려고 한다. 영속계층, 서비스/ 컨트롤러, javascript로 ajax 처리, 화면 처리 순서대로 작업할 예정이다. https://wonisdaily.tistory.com/71 [4-ch17 댓글 처리 ① ] sql 댓글 테이블 생성과 영속 영역 설계 (MyBatis) 댓글 처리를 위한 영속 영역 댓글 추가하기 위해서 댓글 구조에 맞는 테이블 설계한다. --댓글 테이블 설계 create table tbl_reply ( rno number(10,0), -- 댓글 번호 bno number(10,0) not null, -- 어떤 게시글.. wonisdaily.tistory.com 앞 페이지에서 영속계층 구현은 완료하였다. Repl..