본문 바로가기

BackEnd/Spring

스프링에서 context에 대한 이해 1. context란? 번역하면 문맥, 맥락이지만, 직관적으로 이해하자면 메모리에 로딩된 정보 덩어리라고 볼 수 있다. 단순한 메모리정보가 아니라 서로 연관성을 갖는 정보들끼리의 묶음이라고 볼 수 있다. 2. servlet-context 하나의 서블릿이 메모리에 로딩될때 연결,포함된 각종 설정정보들, 변수들, 함수들이 서블릿 바운 더리내에서 이해할 수 있는 묶음영역으로 메모리에 올라온다고 보면 된다. 서블릿 컨테이너(Apache Tomcat)가 시작되면, 해당 서블릿 컨테이너는 모든 웹 어플리케이션들 을 배포(deploy)하고 로드(load)하면서 ServletContext를 한번 생성하여, 서버의 메모리에 올라간 다. 3. servlet-context.xml, root-context.xml, web.x..
스프링 시큐리티란? 1. 스프링 시큐리티란? 아이디와 비밀번호를 입력해서 로그인하여 사용자를 인증(Authentication)하고, 로그인 후 프로그램의 각각의 기능 대한 권한(Authorization)을 부여 하는 기능을 구현한 프레임워크 2. 보안 관련 용어 1) 접근 주체(Principal) : 보호된 대상에 접근하는 유저2) 인증(Authentication) : 현재 유저가 누구인지 확인하는 과정( 예: 로그인 )3) 허가,인가(Authorization) : 인증 된 상태에서 인증 주체가 어떤 서비스나 기능을 사용할 수 있는지에 대한 자격부여
빈 객체 범위(scope)- 싱글톤, 프로토타입 1. 싱글톤(singleton) 범위를 가진 빈 별도 설정을 하지 않을 경우 스프링은 빈 객체를 한 번만 생성한다. getBean 메서드를 두 번 이상 호출해서 빈을 구하면 매번 동일한 빈 객체를 리턴한다. 즉 여러번 빈을 구해와도 같은 객체를 참조하게 되는것이다. 12345ConnPooH p1 = ctx.getBean(pool1, ConnPool1 .class);ConnPooH p2 = ctx.getBean(pool1, ConnPool1 .class); // p1 == p2 는 true, 즉, 이과 p2는 동일한 객체를 참조함cs 스프링 컨테이너가 초기화되고 종료되기 직전까지 빈 객체는 한 개만 생성되는데 즉 스프링 컨테이너를 기준으로 특정한 빈 객체는 한 개만 존재하므로, 싱글톤 (singleton)..
스프링과 DI(Dependency Injection)- 의존 주입과의 관계 1. 의존이란? 어떠한 기능(예를 들면 어떠한 클래스의 메소드)을 실행하기 위해 다른 클래스를 필요로 할 때 이를 의존(dependency)한다고 한다. 즉 의존한다는것은 객체를 사용한다는것으로 볼 수 있다. 2. 의존 객체를 직접 생성하는 방식의 단점 요구사항의 변화로 의존 객체가 쓰이는 클래스마다 객체를 모두 수정해 주어야 하는 비효율성. https://cg-developer.tistory.com/396 3. Dependency Injection - 의존 주입 DI는 의존에 대한 설계 패턴으로 의존 객체를 직접 생성하는 것이 아닌, 외부로부터 전달받는 구현 방식이다. 예를 들면 생성자를 이용해서 의존객체를 전달 받는 방식. 4. DI의 장점 1) 단점과 반대로 , 요구사항이 변화하더라도 의존 객체만 ..
컨테이너 1. 빈(bean) 스프링이 생성하는 객체를 ’스프링 빈(bean) 객체’ 또는 짧게 ’빈 (bean) 객체라고 부른다 2. 컨테이너 1) 스프링은 XML 설정 정보로부터 생성한 스프링 빈 객체를 생성/조립/관리하는 기능을 제공하는 데,이 기능을 제공하는 객체를 컨테이너라고 부른다. 2) XML 설정 파일로부터 스프링 컨테이너를 생성하고 필요한 객체를 컨테이너로부터 가져와 사용 하는 것이다.
메이븐 1. 메이븐이란? 빌드 도구이다. 빌드 도구들의 주요 특징 중 하나는 의존 모듈 Jar 파일 관리에 있다. 예를 들어,메이븐의 경우 중앙 리파지터리(central repository)라고 불리는 서버로부터 필요한 jar 파일을 다운로드 받아 의존 모듈을 관리한다 스프링 프레임워크에 포함된 jar 파일 및 스프링 프레임워크에서 필요로 하는 jar 파일을 하나의 파일로 묶어서 배포하기 보다는,메이븐 중앙 리파지터리를 통해서 스프링 프레임워크 모듈(jar 파일)을 배포하고 있다.
서블릿과 톰캣(서블릿 컨테이너)의 관계 1. 서블릿이란? html만을 활용해서 웹페이지를 개발하면 정적인 웹페이지밖에 만들지 못한다. 이러한 html의 한계를 극복해서 나오게 된것이 서블릿이다. 즉, 서블릿은 자바에서 동적인 웹페이지를 개발하기 위한 기술중에 하나라고 할 수 있다. 또 다른 말로 하면 , 클라이언트 요청을 처리하고 그 결과를 다시 응답하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램" 이라고 이해하면 될 것 같다. 2. 톰캣 = 서블릿 컨테이너 톰캣(서버)은 WAS(Web Application Server)또는 서블릿 컨테이너라고 불린다. 서블릿 컨테이너는 쉽게 말해 서블릿을 관리해주는 컨테이너다. 서블릿 컨테이너는 서블릿을 담고있는 그릇이다. 톰캣 서버가 시작할때, 서블릿들을 인스턴스를 만들고 서블릿 컨테이너인 그..
프레임워크란? 1. 프레임워크란? 프레임워크는 '뼈대나 근간을 이루는 코드 들의 묶음'이라고 할 수 있다. 중요한 점은 이 뼈대가 왜 필요한가이다. 개발자는 각 개개인의 능력 차이가 큰 직종이고, 따라서 개발자 구성에 따라 프로젝트의 결과 역 시 큰 차이를 낳는다. 프레임워크는 바로 이런 상황을 극복하기 위한 코드의 결과물이다. 프레임워 크를 이용한다는 의미는 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발하게 된다. 프레임워크 최대의 장점은 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에,실력이 부족 한 개발자라 하더라도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다는 점이다. 기업의 입장에서는 프레임워크를 사용하면 일정한 품질이 보장..