프로그래밍

[웹 프로그래밍] 스프링부트JPA 5. 회원 기본정보 확장하기. 연락처와 주소.

tt2t2am1118 2023. 1. 7. 22:06
반응형

안녕하세요. 오늘 웹 프로그래밍, 다시 적어보는군요.

 

 

우리가 만든, 사용자, 기업 회원, 관리자. 이렇게 사용되며, 기업회원의 근로 제공서비스가 어떻게 되어야 하는지 잘 생각해 볼 필요가 있습니다. 

 

 사용자는 3가지의 형태로 구분되며, 3가지를 모두 가질 수 있는 형태입니다. 각각 주소와 연락처를 가질 수 있겠죠? 주소와 연락처를 각 Role클래스에 추가해주는데, 주소는 반복되기 때문에 데이터로 만들어 줌니다.

 

엔티티에, Role클래스가 연결되어 있고, 각 Role클래스마다 연락처와 주소를 넣어주었습니다.

 

서비스를 실제 구현할 때에, 이러한 형태를 고려해야겠죠~.

 

 형식은 이렇습니다.

 

마이페이지 구현--

 

1. 컨트롤러에서, 세션을 불러온다. 

    org.example.MyPageController.mypageIndex()

 

 

2. 세션에서 Role정보를 빼내온다.

3-1. 연락처와 주소정보가 있는 경우,  연락처와 주소정보를 보여준다.  수정하기가 가능하게 해준다.

3-2. 연락처와 주소정보가 없는 경우, 새로 생성하는 폼을 보여준다. 

 

엔티티마다의 상관관계는, 쉽게 생각해서 데이터를 확장한다라고 생각하시면 될검니다. 좀 더 상세하거나, 분류해야할 필요가 있는 데이터... 중복이 되는 데이터의 경우에 그렇겠죠~.

 

연락처와 주소의 경우는 중복이 됨니다. 그렇기 때문에, 각각의 엔티티로 만들고, 이 id를 ManyToOne으로 연결시켜주면 되는 것이죠.

 

 나머지의 로직들은, 데이터의 CRUD이거나, model객체에 데이터를 저장해서, View페이지에 값을 넘기고 하는 반복이기 때문에 생략했습니다.

 

 널체크로 인해서 코드 길이가 길어지는 것 같아요~.

 

공부해보세요. 지금의 경우에는, 그냥 지나가도 괜찮다고 생각해봄니다. 하나하나 소스코드를 보는 것도 필요하겠죠. 시간이 걸리고, 실제로 서비스를 구축할 때에 이런 형태의 개발이 있다. 이렇게 생각하는 것이 좋은 것 같습니다.

 

능률상으로 빠르지 않지만, 이런 개발을 할 필요는 있다. 이렇게 이야기할 수 있겠네요.

 

익숙해지는 것이 필요하겠죠~. 다음에는 마이페이지를 심화해서, 회원 정보라는 네비게이션을 만들고, 그 안에 집어 넣도록 해볼게요.

 

https://github.com/infott2t/ex05-springboot-querydsl

 

GitHub - infott2t/ex05-springboot-querydsl

Contribute to infott2t/ex05-springboot-querydsl development by creating an account on GitHub.

github.com

 

 웹 디자인을 미리 만드는 것이 개발에 효율이 더 높을까 생각해봄니다.

 

공부해봅시다. 좋은 하루되세요.

 

 

--

저의 글, 봐 주셔서 감사합니다.

반응형