일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 1차면접
- 간단 프로젝트
- MySQL
- 쟈스
- SBS 본사
- 리액트
- 대문자
- 트리
- 프로젝트 후기
- 첫 리액트
- 첫 React
- 백준알고리즘
- IT시스템개발
- 백준
- 자바
- 면접
- 뷰 리액트 비교
- CompositionAPI
- 사내시스템
- react
- Vue.js
- 웹 개발 면접 질문
- e-HR
- 경력직
- 뷰 리액트
- 알고리즘
- 뷰
- 오라클
- SBS 개발
- URL입력
- Today
- Total
목록프로젝트/[spring]팀프로젝트 (7)
리주의 프로그래밍 공부
회원 탈퇴시, 작성글, 좋아요, 스크랩, 댓글 정보도 모두 삭제하기로 의견이 모였다. >> 개인프로젝트에서는 참조 무결성으로 인해, 자식 테이블의 정보를 삭제한 뒤에, 부모 테이블의 정보를 삭제하는 방식을 택했다. (사실 이때에는 다른 방법을 생각할 시도조차 안했던 것 같다...) 하지만 이번에는 부모 테이블의 정보를 삭제할 때, 자동으로 자식 테이블도 삭제하는 방법을 찾았다. 바로 제약 조건에 "on delete cascade" 함수를 넣는 것이다. >> 회원 탈퇴시에 그 회원이 남긴 정보를 삭제하는데, 관리자 모드가 있다면, 회원이 탈퇴했을때의 기록? 로그는 안남기나?

생각해보니 RESTful한 코드를 위해서는 프론트와 처음부터 페이지 설계에 대해 얘기했어야했다. >> 선택한 글의 detail 페이지로 이동하는 방법을 생각하다보니, 이런 결론에 나왔다. mvc방식이 아닌이상 페이지 이동시킬 방법이 없었다. 내가 처음에 REST하게 해보자했었는데, 잘 몰랐던 상태에서의 실수였다. 이제서야 jsp를 사용하면 자동으로 SSR(Server-Side Rendering)을 통해 굳이 RESTful API를 사용할 필요가 없게 된다는 것을 확실히 알게됐다. 사실 쇼핑몰 홈페이지도 굳이 mvc방식에서 바꾸는 방식이 의미가 없었는데, 공부차 코드를 수정해보려 한거였다. 지금보니, 큰 의미가 없었던 시도였다.
어제는 ajax로 로그인과 회원가입 부분을 비동기적으로 처리하는 작업을 했다. >> 기존에 만들었던 쇼핑몰 홈페이지.. 초짜라면 누구나 만들 수 있었던 정도의 수준이라는 것을 느꼈다. 사실 ajax도 사용해보니, 크게 어렵다? 할 부분은 없었다. 다만, response, request, header, body 등 네트워크에 대한 지식도 필요하다는 것을 느꼈다. 프론트와 백의 속도 차이로 프로젝트 진행이 생각보다 잘 되고 있지는 않다. >> 초반에 스프링 시큐리티를 공부하고 사용하면서 시간에 많이 쫓겨, 다른 일들이 막막해보였고, 프론트엔드 개발 속도를 따라갈 수 없을거란 걱정을 많이 했었다. 근데 시간이 조금 지나고나니, 나는 30이란 위치에서 해야할게 필요한데, 프론트는 아직 30에 못미쳐서, 내가 할..
after 가상 요소로 기본 화면을 어둡게 만들고, 그 위에 form을 띄워 사용하는 로그인 기능에 스프링 시큐리티 적용이 꽤나 어렵다 >> 스프링 시큐리티의 과정을 잘 숙지해서 에러메세지 출력 처리와 로그아웃 후 재로그인 했을 때의 오류 처리 등에 시간이 좀 걸릴 것 같다. 혼자 json으로 데이터 전송을 테스트 해보기 위해, jquery와 javascript를 만지고 있자니, 경계선이 매번 혼란스럽다. 로그인 창이 계속 제대로 안떠져서 확인해보니, 캐시값 때문이었다. 기존에 잘못 저장된 캐시값으로 올바른 코드였음에도 불구하고, 계속 잘못된 출력이 나왔다.
이제까지 회원가입 관련된 부분들을 user란 패키지에 넣고 사용했는데, 오늘 join으로 분리시키기로 결정했다. >> 현재는 권한에 따른 접근 거부를 풀어놨지만, 정보 조회 페이지를 권한으로 막으려면 view의 폴더를 따로 나눠주는게 좋기 때문에, 하는김에 자바 쪽 패키지도 정리했다. 어제는 톰캣으로 외부 접속 허용을 설정해봤다. 그러고보니 오늘 든 생각이, 동시 접속과, 같은 시간대에 동일한 이메일로 인증했을 경우에는 어떻게 처리해야할까? >> 동시 접속은 스프링 시큐리티로 해결했다. 다만 아직 커스텀 로그인이 아니라서, 기본 제공되는 오류출력을 사용해서 임시방편으로 사용 그런데 이메일 인증은.. 이메일 인증완료되면 컨트롤러에 신호를 보내서 무언가 처리를 해줘야할까? 찾아봐야겠다.

큰 틀을 구상하다가, 검색 기능과 글 목록 출력에 대해 테스트해보기로 했다. 여러 테이블이 결합된 탓에, 출력을 하려면 join을 써야했다. 그런데, 막상 join을 써서 어찌저찌 원하는 column만 뽑아냈는데.. 그 쿼리에 검색을 추가할 엄두가 안나는 것이다. 그렇게 고민하던 중, view를 사용해보라는걸 듣고 오른쪽에 보이는 5개의 테이블을 필요한 column만 모아서 view를 만들었다. group_concat도 사용해서 새로운 tag column에 태그들을 넣었다. 모든게 순조롭게 진행되는줄 알았으나... 또 검색을 생각해보니, 이대로는 tag에서 검색하기가 쉽지않았다. 그래서 최종적으로 결정한 방법은.. join으로 view를 만들되, group_concat을 view 만들 때 사용하는게 아니..
Entity와 DTO의 구분 Entity : DB와 1대1 매칭 DTO : View를 위함 고민 그렇다면 Entity는 dao에서만 사용해야하는가 Controller와 Service까지는 DTO를 쓰고, dao에서는 Entity를 DTO로 변환시켜줘야하나 Mybatis에서는 큰 의미 없고, JPA에서는 기능때문에 구분해서 사용하는게 중요하다고 한다. 결론 Mybatis를 사용하는 지금은 적절히 사용하자. 실시간 검색어 기능 구현 ajax를 사용하여 비동기적으로 검색가능하게 구현했다. 문제 입력을 빨리했을 경우에는 이전 검색목록이 사라지지 않고, 누적된다. Async를 사용해보면 어떨까란 생각이 들었다.