이미지 영단어 학습 어플인 ABeeC 어플의 개발 일지를 기록한다. spring framework을 이용한 서버구축을 맡았으며 개발 순서를 작성할 것이다.
요청 Url이나 요청 방식, 요청 데이터형식은 Controller부분에 작성해 놨습니다.
MySql을 이용한 데이터베이스를 구축하고자 하였으며, user,my_voca,voca 테이블을 생성하였다.
id,name,password,age,phone,words_count,level 필드
user_id,voca_id,image 필드
english,korea 필드
User , MyVoca , Voca 엔티티를 생성하였다.
primary key : id
name,password,age,phone,wordsCount,level로 구성된다.
primary key 인id 와 user_id,voca_id,image 로 구성된다.
user_id는 user entity 를 참조하는 외래키 이다. ( N대1)
voca_id는 voca entity 를 참조하는 외래키 이다. (N대1)
primary key 인 id 와 english , korean 으로 구성된다.
회원 가입시 id에 대한 중복 검사와 회원정보를 등록,로그인하는 서비스 기능을 제공하는 클래스이다. @Service 어노테이션은 해당 클래스가 서비스로서 빈으로 등록되게 한다.
idCheck 메소드
넘어온 id 값을 user table에서 찾은 후 값이 없는 경우 1을 값이 중복되는 경우 -1을 전송한다.
saveUser 메소드
넘어온 userDto 를 데이터베이스에 저장해주기 위하여 entity로 변경해준다. 해당 엔티티를 User 테이블에 저장한다. 반환은 Dto타입으로 해주기 위하여 entity를 다시 dto 로 변경한뒤 반환해준다.
loginCheck 메소드
넘어온 id값으로 가져온 user 객체의 password 값과 넘어온 password 값이 일치하는지 검사하여 일치하는 경우 1을 일치하지 않는 경우 -1을 반환한다.
<기존 회의 내용>
20.02.14 회의 논의 사항
-> 안드로이드 스튜디오의 OKHttp 라이브러리 사용
<관련 사항>
회원가입과 아이디 중복검사,로그인의 컨트롤러를 제공하는 클래스이다.
idCheck 메소드 : localhost:8080/abeec/join/{id} 의 get요청
id 의 중복을 검사한다.
request : String 형태의 id - path variable
response : 중복시 "another id is required", 중복이 아닐시 id
join 메소드 : localhost:8080/abeec/join 의 post요청
회원가입 기능을 수행한다.
request : json - user 정보 ( id,password,age,phone,name)
response : 유효검사(validation)통과시 - user 정보 (id,password,age,phone,name,level,words_count)
유효검사 미통과시 - 400에러와 해당 에러 field명,에러메세지
해당 유효검사 항목은 밑의 user dto 부분에서 확인 가능하다.
login 메소드 : localhost:8080/abeec/login?id=""&password="" 의 get 요청
로그인 기능을 수행한다.
엔티티를 직접 교환하는 것이 아닌 클라이언트 단에서 사용할 데이터를 dto 로 구성한다.
사용자 dto이다.
id : not blank로 null,공백이 불가하다.
name : not blank
password : not blank , 글자수 : min 4~max 11
age : not blank, max 값이 100살
phone : 000-1234-1234 또는 01012341234 정규식 표현 -> @Pattern(regexp = "^01([0|1|6|7|8|9])-?([0-9]{3,4})-?([0-9]{4})$")
wordsCount : 맞힌 단어 개수
level : 레벨
참고자료