개발 공부/Spring 55

스프링 입문 - 빈과 의존관계

컴포넌트 스캔과 자동 의존관계 설정 컴포넌트 스캔 대상 : 메인 메서드가 있는 패키지를 포함해서 하위패키지까지 찾아서 스프링 빈으로 등록해 줌. @Controller 스프링 컨테이너 통이 생기는데 , @Controller 가 있으면 MemberController객체를 생성해서 스프링에 넣어 두고 관리. 컨테이너에서 빈이 관리된다고 표현 생성자가 있으면 생성자를 호출 new MemberService()를 만들어서 사용하게 되면 생기는 문제점: 또 다른 컨트롤러에서도 가져다 쓸 수 있다 MemberSevice()는 여러 개 만들 필요 없이, 하나만 만들어 공용으로 사용하면 좋다 →컨테이너에 등록하면 하나만 등록 됨 스프링이 관리하게 되면 스프링 컨테이너에 등록하고 받아 써야 함 @Autowired 생성자에 ..

스프링 입문 - 회원관리 예제 (백엔드 개발)

Service : 비즈니스 처리 / 비즈니스에 가까운 용어 사용 필요 Repository : 기계적, 개발스럽게 용어 선택 service를 통해 member가입할 수 있고 repository에 저장되고 꺼내올 수 있음 controller와 view template필요 회원가입하고 결과를 html로 뿌려주고 그러려면 member controller를 만들어야됨 member service를 통해 회원가입, 데이터 조회할 수 있어야 한다. 이것을 의존관계가 있다고 표현. controller가 service를 의존한다 클래스 전체 테스트 하다가 오류 발생 @AfterEach : 메서드 실행이 끝날때마다 동작 Test실행 할 때, 순서 없이 진행 되는데 여러 메서드 안에 같은 value값을 넣은 경우 오류 생기는..

스프링 입문 - 스프링 웹 개발 기초

1. 정적 컨텐츠 서버에서 파일을 그대로 웹브라우저에 내려 주는 것 2. MVC와 템플릿 엔진 템플릿 엔진 : HTML을 서버에서 프로그래밍해서 동적으로 바꿔서 내려 줌 (ex: Jsp, php) MVC : 컨트롤러, 모델, 템플릿 엔진(화면) 3. API Json 데이터 구조 포맷으로 데이터 전달 사용 예시 ) 서버 끼리 통신할 때 정적 컨텐츠 MVC와 템플릿 엔진 MVC : Model, View, Controller View - 화면을 그리는 것에 집중 Controller , Model - 비즈니스 로직과 내부적인 것을 처리하는데 집중 파일 마우스 우클릭 -> Copy Path/ Reference.. -> Absolute Path 타임 리프의 장점 : 서버 없이 열어 볼 수 있다 [과정] 브라우저에서..

스프링 입문 - 프로젝트 생성 / 라이브러리/ 환경설정

Maven or Gradle => 필요한 라이브러리를 땡겨오고, 관리하는 툴 요즘하는 gradle을 거의 사용 Group : 기업 도메인명 Artifact : 결과물 (프로젝트명) Dependencies : 어떤 라이브러리를 땡겨 쓸 것인지 지정 gradle : 버전 설정하고 라이브러리 끌어와주는 기능 main을 실행 -> 웹브라우저에 localhost : 8080 입력해서 아래의 페이지 나오면 성공 gradle이나 maven같은 tool들은 의존 관리를 관리 해줌 스프링 부트 라이브러리 spring-boot-starter-web - spring-boot-starter-tomcat: 톰캣 (웹서버) - spring-webmvc: 스프링 웹 MVC spring-boot-starter-thymeleaf: 타..

Security를 이용한 로그인 처리

p.606~ 새로운 요청이 들어올때 마다 서버측에서 쿠키에 세션ID가 있는지 검사를 한다 요청에 세션ID가 포함되어 있으면, 세션 공간과 맵핑하여 인지 후 프로그램이 진행된다 세션ID가 없거나, 틀리면 서버는 무조건 새로 생성해서 돌려주게 된다. 있더라도 서버공간을 찾아 일이시키지 못 하면 새로 돌려주게 된다. 스프링 시큐리티의 기본 동작 방식: 서블릿의 여러 종류의 필터와 인터셉터를 이용해서 처리 됨 필터 : 스프링과 무관하게 서블릿 자원 인터셉터 : 스프링의 빈으로 관리되면서 스프링의 컨텍스트 내에 속한다 공통사항 : 특정한 서블릿이나 컨트롤러의 접근에 관여한다 Http는 보안에 취약함. fileter를 이용한 처리 -> web.xml 5.0을 지워준다 filter-name이 같아야함 param-na..