본문 바로가기

Spring이론

(10)
Spring security로 회원가입 및 로그인 구현 이론(1) 이번에 오랜만에 글을 쓰게 되었네요. 이번에 spring security를 사용하는게 처음이라 보니깐 여러가지 공부도 좀 하고 그러다 보니 글을 쓸 내용도 없었다가 이번에 어느정도 공부가 끝이 나게되어 spring security라는 주제로 이론편(개발 계획)과 실습편으로 나누어 다시 글 작성을 시작하게 되었습니다. 우선 이번에는 이론편부터 시작해볼려고 합니다. 이론편의 경우 2번에 나눠서 글을 쓸 예정입니다. 첫 번째 글은 살짝 가볍게 작성하고 두 번째 글부터는 deep한 개념까지 들어가 볼 예정입니다. 우선 spring security란 spring 기반의 보안을 담당하는 spring의 하위 framework입니다. spring security의 경우 인증과 인가라는 매우 중요한 개념이 존재하는데 인..
spring boot에서 test code 작성(TDD, Junit) 이번엔 이론편으로 돌아왔습니다. 제가 현재 spring boot를 통해 제작중인 서버를 만드는데 있어서 이제는 test code를 제작할 필요가 생겼다는 판단으로 test code 제작 방법을 공부하고 있습니다. Spring으로 개발을 하면서 test를 만들지 않는다면 spring이 지닌 가치의 절반을 포기하는 셈이라고 합니다. spring 개발자로서 test 작성방법과 이를 효과적으로 개발에 활용하는 전략을 알아야 하고, 이를 실전에 적용하기 위해 오늘의 글 작성을 시작해보겠습니다. * 아래 나올 내용은 https://youtu.be/SFVWo0Z5Ppo 어라운드 허브 스튜디오의 영상과 토비의 스프링을 참조했습니다. 1. TDD 테스트 주도 개발이라는 의미를 지니고 있습니다. simple하게 말하자면 ..
Spring에서 XML을 이용한 설정 스프링은 DaoFactory와 같은 java class를 이용하는 것 외에도, 다양한 방법을 통해 DI 의존관계 설정 정보를 만들 수 있는데, 가장 대표적인 것이 바로 XML을 이용한 설정방식입니다. XML을 이용할 경우의 장점 1. XML은 text file이기 때문에 다루기 쉽고, 쉽게 이해할 수 있습니다. 2. compile과 같은 별도의 build작업이 없습니다. 3. 환경이 달라져서 object 관계가 바뀌는 경우에도 빠르게 변경사항을 반영할 수 있습니다. 4. schema나 DTD를 이용해서 정해진 format을 따라 작성됐는지 손쉽게 확인할 수도 있습니다. 본격적인 XML 설정방법 spring의 application context는 XML에 담긴 DI 정보를 활용할 수 있습니다. DI 정보가..
애플리케이션 컨텍스트의 동작방식 우선 ApplicationContext의 동작방식에 대해 알아보기 전에 용어를 먼저 정리해보겠습니다. bean - bean 또는 bean object는 spring이 IoC 방식으로 관리하는 object라는 뜻입니다. bean factory - spring의 IoC를 담당하는 핵심 컨테이너를 가리킨다. bean을 등록하고, 생성하고, 조회하고 돌려주고, 그 외에 부가적인 bean을 관리하는 기능을 담당합니다. 보통은 이 bean factory를 바로 사용하지 않고 이를 확장한 애플리케이션 컨텍스트를 이용합니다. bean factory라고 붙여쓰면 bean factory가 구현하고 있는 가장 기본적인 인터페이스의 이름이 됩니다. 이 인터페이스에 getBean()과 같은 메소드가 정의되어 있습니다. appl..
DAO생성해서 간단한 CRUD 구현하기 사용자 정보를 JDBC API를 통해 DB에 저장하고 조회할 수 있는 간단한 DAO를 만들어 CRUD를 구현하는 방법을 이야기해보겠습니다. 먼저 사용자 정보를 저장할 User class를 만듭니다. 해당 class에는 id, name이라는 프로퍼티를 가집니다. public class User{ String id; String name; public String getId(){ return id; } public void setId(String id){ this.id=id; } public String getName(){ return name; } public void setName(String name){ this.name=name; } } 여기서 id의 경우 DB의 Primary Key로 설정합니다. ..
Spring 개념 부족을 해결하기 위해서 요즘 spring boot를 통해 android application의 back-end를 구현하고 있었다. 그런데 back-end 개발을 할 때마다 너무 야매의 냄새가 나고 어려워서 spring공부를 본격적으로 하기로 결정했다. 어떤 방식으로 공부할지 고민하다가 spring 공부에는 '토비의 스프링'이라는 책이 유명하다고 해서 책을 구매하였고 이제부터 공부한 내용을 올릴 계획이다.
안드로이드에서 서버와 DB연동을 위한 Spring boot 구조 이번 글에서는 안드로이드에서 서버와 데이터베이스를 연동하는 방법에 대하여 작성해보겠습니다. 우선, 저는 Front-end에서는 android studio를 사용하고 Back-end에서는 InteliJ에서 spring boot를, 마지막으로 DB의 경우 Maria DB를 사용하였습니다. 현재는 이러한 형식으로 진행 중이며, 추후에 application을 배포할 때는 AWS를 이용할 생각입니다. 이제 본격적으로 안드로이드에서 서버와 db연동을 위한 spring boot 설계 구조에 대해 이야기 해보겠습니다. 아래에 나올 내용 및 사진은 어라운드 허브 슈튜디오( https://youtu.be/4Pvd0KrTfvE ) 를 참조하였습니다. 1. Spring Boot 서비스 구조 1) Client front-end..
MVC 패턴 이번 글에서는 안드로이드 앱 백엔드 개발을 하면서 공부하게 된 MVC 패턴에 대하여 글을 써보겠습니다. 내용의 경우 어라운드 허브 슈튜디오( https://youtu.be/rHJgMRimJ4Y ) 를 참조하였습니다. 1. MVC (Model View Controller) MVC 패턴은 디자인 패턴 중 하나로 Model, View, Controller의 줄임말입니다. 이는 application을 구성할 때 그 구성요소를 세가지 역할로 구분한 패턴을 의미합니다. MVC 패턴을 이용한다면 사용자 인터페이스로부터 비즈니스 로직을 분리하여 서로 영향 없이 쉽게 고칠 수 있는 설계가 가능합니다. spring boot 에서의 사용 예시를 들어보자면 1) spring boot project 안에서 controller라..
retrofit2 저번 글에서는 REST API에 대하여 알아봤다면 이번 글에서는 안드로이드와 서버간의 REST API 통신을 도와주는 retrofit이라는 라이브러리에 대해 알아보겠습니다. retrofit은 통신 라이브러리 중 하나로 AsyncTask와 Volley 와 같은 다른 라이브러리보다 더 많이 이용됩니다. 그 이유를 알아보자면 타 라이브러리보다 확연하게 빠른 성능을 자랑합니다. 하지만 저 같은 안드로이드와 spring 개발에 초보자에게 무엇보다 중요한 장점이 많습니다. 그건 바로 인터넷에 자료가 정말 많습니다. 처음 앱 개발을 준비할 때도 '안드로이드 서버 통신 = retrofit2' 이렇게 공식처럼 되있더라구요. 더 자세한 내용은 https://square.github.io/retrofit/ 해당 사이트를 참..
REST API 이번에 처음으로 서버를 갖고 있는 안드로이드 앱을 개발하게 되었습니다. 완전 처음부터 개발하다보니 접근방식조차 알 수 없어서 하나하나 공부하게 되었습니다. 모바일 앱 서버를 구현하는데 있어서 첫 게시물은 REST에 대하여 소개하고자 합니다. 내용의 경우 어라운드 허브 슈튜디오( https://youtu.be/rHJgMRimJ4Y ) 를 참조하였습니다. 1. REST REST란 Representational State Transfer의 약자로 HTTP URI를 통해 자원을 명시하고 자원의 이름으로 구분하여 해당 자원의 상태를 HTTP Method를 통해 교환하는 것을 의미합니다. 이러면 HTTP Method가 무엇인지 의구심이 드는데 HTTP Method는 CRUD의 방식으로 대표적으로 Create = P..