개발 공부

스프링 - 스프링 컨테이너, 싱글톤
0. 스프링 컨테이너 - ApplicationContext를 스프링 컨테이너라고 부른다. - 기존엔 개발자가 AppConfig에서 직접 객체를 생성하고, 의존관계를 정의했지만 스프링 컨테이너를 이용하면 편리해진다. - 스프링 컨테이너에서 @Configuration가 붙은 설정을 찾아서, 해당 설정 정보를 이용해서 빈과, 의존 관계를 구성한다. - @Bean이 붙은 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 1. 스프링 컨테이너 생성 //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class) 2. 이후 AppConfig 클래스 안의 @Bean 메서..
스프링 - 의존 관계와 DI, Ioc 컨테이너
0. 의존 관계란 - 의존 관계란 어떤 대상 A가 대상 B에 영향을 받는, 연관이 있는 관계이다. (사용하는 관계면 의존한다라고 봐도 무방한 것 같다.) - 예를 들자면, 인터페이스 A를 구현한 클래스 classA에서 인터페이스 B를 구현한 클래스 classB1을 사용한다. public class classA implements A{ private B objectB = new classB1(); } 이러면 클래스 classA는 인터페이스 B와 구체 클래스 classB1에 의존하는 관계가 되는 것이다. 하지만 이렇게 의존 관계를 설정한다면 문제점이 있다. 0. SRP(단일 책임원칙) 위반 클래스 classA는 직접 구현 객체를 생성하고, 연결하고, 실행하는 다양한 책임을 가지고 있다. 하나의 클래스에는 하..
![[Linux] 윈도우에서 WSL2 우분투 디렉토리 열기, 파일 옮기기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH6Og2%2FbtrexmvGnBW%2FuehpjxlGk9GUjJ6pILqNx1%2Fimg.png)
[Linux] 윈도우에서 WSL2 우분투 디렉토리 열기, 파일 옮기기
이전 포스팅에서 윈도우에서의 내용을 WSL2 우분투에 복사, 붙여 넣기를 해보았다. 하지만 윈도우에서도 작업할 수 있는 파일이나 내용이면 아예 윈도우에서 작업하고 우분투로 옮기면 어떨까? AWS와 같은 아예 다른 서버는 filezilla 같은 프로그램을 이용해서 FTP(파일 전송 프로토콜)로 전송해야 한다. 하지만 WSL은 같은 컴퓨터 내에 가상 리눅스를 생성한 것이기 때문에 결국 같은 저장소를 사용할 것이다. 바로 본론으로 들어가 보자. 우분투 창에서 explorer.exe . 을 쳐보면 윈도우에서 폴더가 뜬다. explorer.exe . 저곳이 바로 explorer.exe . 명령어를 친 경로의 저장소이다. 윈도우의 파일 탐색기 + 현재 경로라는 의미의 "."이다. 이후에 윈도우에서의 파일을 내가 원..
스프링 MVC - 서블릿을 통한 HTTP 요청(GET, POST, API, JSON)
0. 개요 - WAS에 요청이 들어오면 HttpServletReqeust와 HttpServletResponse 객체를 생성하고, 서블릿 객체의 service 메서드에 파라미터로 전달되면서 실행된다. 우리는 http 요청과 응답에 대해 하나하나 메시지를 파싱 하고, 읽고, 다시 응답 메시지를 생성하는 등의 일을 매번 할 수 없기 때문에 servlet에서 제공하는 Request객체와 Response 객체를 이용하면 편리하게 통신할 수 있다. 1. HttpServletRequest의 역할 HTTP 요청 메시지 파싱(StartLine, 헤더, 바디) 임시 저장소 기능(해당 HTTP 요청이 시작부터 끝날 때까지 유지된다) 세션 관리 기능(request.getSession()) 2. 클라이언트에서 서버로 데이터를 ..

스프링 MVC - 웹 구조, 서블릿
웹 시스템의 구성 1. WAS - DB - 웹 서버를 두지 않고 WAS가 웹 서버의 역할까지 다 한다. 단점 WAS가 정적 리소스, 동적 리소스 모두 처리하므로 큰 부담이 된다. 정적 리소스 생성이 코스트가 큰 동적 어플리케이션 실행에 방해를 줄 수 있다. 만약 WAS가 고장 나면 오류 화면을 노출시킬 수 없다. 2. Web Server - WAS - DB - 앞에서 정적인 처리는 웹 서버가, 동적인 처리가 필요하면 WAS에게 위임 - WAS는 중요한 어플리케이션 로직을 처리 장점 효율적인 리소스 관리가 가능 - 정적인 요청이 많으면 웹 서버를 증설, 동적인 요청이 많으면 WAS를 증설 정적 리소스를 제공하는 웹 서버는 잘 다운되지 않음. WAS는 곧잘 다운됨 따라서 WAS가 처리를 하지 못하는 상황이 ..

Servlet이란?
네이버 부스트 코스 웹 백엔드 과정을 공부하고 정리한 내용입니다. 0. Java Web Application이란 - WAS에 설치되어 동작하는 어플리케이션이다. - 자바 웹 어플리케이션에는 HTML, CSS, 이미지, 자바로 작성된 클래스(Servlet 클래스 포함, package, 인터페이스 등), 각종 설정 파일 등이 포함된다. 1. 서블릿이란? - 자바 웹 어플리케이션의 구성요소 중 동적인 처리를 수행하는 Java 클래스이다. - WAS에서 동작하며 HttpServlet 클래스를 상속받아야 한다. - JSP와 서블릿을 효율적으로 이용하려면 웹 페이지 구성(JSP) + 복잡한 프로그래밍(서블릿)으로 구현한다. 2. 서블릿의 생명 주기 - init() 1. 해당 URL로 클라이언트가 서버로 요청을 하면..