본문 바로가기

BackEnd/Spring14

[스프링부트3] 자바 백엔드 개발 입문 *개인 복습용 게시글입니다. 뷰 템플릿(=뷰): - 화면을 담당하는 기술, 웹 페이지를 하나의 틀로 만들고 변수를 이용해 서로 다른 페이지로 보여줄 수 있게 함 - 도구 : 머스태치 .mustache doc 치고 +TAB : 기본 HTML 코드 작동 작성됨 어노테이션: 소스 코드에 추가해 사용하는 메타 데이터의 일종 컨트롤러에서, return "greetings" 하면 template 디렉터리에서 greetings.mustache 파일 찾아 전송 {{변수명}} //머스태치, 단 변수를 사용하려면 모델에 addAttribute 하여 추가해야함 2.4 레이아웃: 화면에 요소를 배치하는 일 부트스ㅡㅌ랩: 웹 페이지를 쉽게 만들 수 있도록 작성해 놓은 코드 모음 (레이아웃, 버튼, 입력창 등) 반응형 디자인: .. 2023. 8. 3.
부트스트랩 다운로드 및 적용하 https://getbootstrap.com/ Bootstrap Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins. getbootstrap.com 2023. 2. 2.
[JPA] N+1 문제 https://incheol-jung.gitbook.io/docs/q-and-a/spring/n+1 2023. 1. 26.
[Maven] Servlet/JSP 라이브러리 설정하기 jar는 기본적으로 build path에 라이브러리가 어디있는 지 경로를 정해둔다. 예를 들어 configure build path - Libraries - Maven Dependencies에서 [Add Library] - [Server Runtime] - [Apache Tomcat v9.0]를 선택하여 직접 경로를 설정한다. * Tomcat 자체가 라이브러리인 것은 아니지만, Tomcat 폴더의 lib 폴더에 라이브러리들이 있다. Tomcat 자체적으로 서블릿과 jsp를 갖고 있기 때문이다. 그러나 이렇게 설정하면 절대경로가 일치하지 않기 때문에 장소를 변경하면 돌아가지 않게 될 것이다. 그렇다고 해서 모든 프로젝트들에 모든 라이브러리들을 다 들고다니는 것은 또 문제가 된다. 이것을 Maven이 해결해.. 2021. 9. 28.
[Spring] AOP AOP: Aspect Oriented Programming (OOP: Object Oriented Programming, 객체지향 프로그래밍보다 큰 개념이다.) 방법론. AOP를 구현할 때 Spring이 도움을 준다. 개발자 관점의 단위 업무, 관리자의 관점의 단위 업무 등으로 나눈다. ex) 로그 처리, 보안 처리, 트랜잭션 처리 등의 사용자의 필요 외의 업무 Primary(Core) Concern: 업무 로직. Cross-cutting Concern (Cross-cutting: 원래의 실행 방향을 잠시 끊으므로, cross): 부 업무 로직. 소스 코드가 있는 사람만 가능한 한계. 프록시를 이용하여 구현. 두 가지 설정 필요: 1) target에 해당되는 개체의 classLoader 2) 곁다리 업무.. 2021. 9. 8.
[Spring] XML Configuration을 Java Configuration으로 변경하기 XML Configuration → Java Configuration 지시서 작성방식을 XML Configuration에서 Java Configuration으로 변경하는 법 : 위의 xml파일과 동일한 기능을 하는 java configuration 파일 @ComponentScan("spring.di.ui") @Configuration public class NewlecAppConfig { @Bean public Exam exam() { return new NewlecExam(); } } ※ 세부 설명 @ComponentScan("spring.di.ui") //@ComponentScan({"spring.di.ui, spring.di.entity"}) 여러개 쓰려면 { } 필요 // @Configuratio.. 2021. 9. 8.
[Spring] @Component의 역할 @Component @Autowired는 XML 파일에서 객체를 불러올 때, 특정 값을 지정해둔 채로 가져오기 위해서 사용한다. 이에 비해 @Component는 XML 파일에서 객체를 불러온다는 언급이 없더라도, @Component가 있는 객체를 자동으로 가져오기 위해 사용한다. @Component 종류 이름은 다르지만 @Component와 같은 기능을 한다. 코드의 가독성을 높이기 위해 다르게 사용한다. @Service: 사용자의 요청이 들어오면 그 요청에 맞는 서비스 제공하는 역할(더 세분화하면 @Requestmapping, @GetMapping, ...) @Controller: 사용자의 입출력을 담당 @Repository(=DAO, 다오) 어노테이션 위치 의미 @Service XXXServicelm.. 2021. 9. 8.
[Spring] @Autowired의 역할 @Autowired의 역할 설정 정보를 등록하는 방법은 두 가지가 있다. xml 이용해 외부 파일에 설정 정보를 등록하는 방법 → 태그를 이용해 직접 XML 파일에 설정 정보를 등록 annotation을 이용해 클래스 파일에 설정을 심는 방법 - 코드에 설정을 심는, 즉 metadata를 심는 것 → XML 파일에 가 사라지고, class 파일(InlineExamConsole)에 @Autowired와 같은 annotation을 추가 @Autowired 사용하기 annotation을 이용하는 방법의 시작은 @Autowired를 사용하는 것이다. Autowired는 객체를 불러올 때 자동으로 인젝션이 될 수 있게 하는 역할을 한다. 불러오는 기준 1. 클래스명(Exam)이 같은 bean 2. 여러 객체가 있.. 2021. 8. 30.
[Spring] 이클립스에 Maven Repository 라이브러리 가져오기 Maven Repository 라이브러리 가져오기 1. 이클립스의 기능 활용 이클립스의 메뉴바에서 Windows - View - Other.. - Maven을 클릭하면 뜨는 창에서, 2. 직접 가져오기 직접 메이븐 repository 에 가서 직접 가져올 수 있다. https://mvnrepository.com/ 2021. 8. 28.
[Spring] Application Context 작성하기 Application Context 작성하기 지시서(DI)를 읽어와서 그 지시대로 객체를 만들고, 그 만들어진 객체를 활용해야한다. 이 때 주체를 생성해주고, 조립해주는 인터페이스가 ApplicationContext이다. ApplicationContext을 작성한 이후에는 ApplicationContext 코드의 수정 없이 지시서(xml)만 수정하면 되도록하는 것이 목표이다. ApplicationContext 종류 지시서를 넘길 때지 지시서의 위치를 어떻게 표현하느냐에 따라 나뉜다. 위의 세 가지는 xml Configuration이며, 네 번째는 java Configuration이다. ClassPathXml: Application의 root으로부터 경로 설정(실행 될 때의 위치) / 가장 보편적 File.. 2021. 8. 28.
[Spring] Spring DI 지시서 작성하기 (Spring Bean Configuration) Spring DI 지시서 작성하기 Spring DI 지시서, Spring Bean Configuration이다. (※Configuration: 환경 설정) Spring이 이해할 수 있는 형식에는 1) XML, 2) annotation 이 있다. (XML - 자바config - boot 순으로 발전되었다.) 따라서 Spring에게 DI를 해달라고 요청할 때에는 위와 같은 형식으로 지시서를 작성해야 한다. XML 파일을 통해 지시서를 작성할 때에는, Spring이 제시하고 있는 양식에 따라 지시해야 한다. 이클립스의 Market Place에서 Spring 플러그인을 설치한 후 Spring Bean Configuration File(XML 파일) 을 생성하면, 직접 타이핑 하지 않아도 기본 양식이 작성되어 있.. 2021. 8. 26.
[Spring] IoC 컨테이너 IoC Container: Inversion of Control Container IoC 컨테이너 Dependency(부품 역할)를 담고 있는 Container(그릇). 역순으로 객체를 생성하여 담는다는 의미에서 IoC 가 붙어 IoC 컨테이너가 되었다. 일반적인 경우에는 주문서에 있는 내용대로 객체를 생성하여 담는다면, (A-B-C-D) IoC Container에 담는 객체들은 작은 것 부터 (D-C-B-A) 담아간다. 그래서 Inversion of Control 라는 말이 붙는다. 2021. 8. 26.