분류 전체보기(313)
-
9. 판매자-구매자 채팅 기능(Chat Application) 구현하기(+ 개발 투자 시간 기록 데이터) (1)
이번 글은 중고거래 웹사이트 프로젝트를 진행하면서 구현한 판매상품별 판매자 - 구매자 채팅기능(Chat Application)에 관한 글입니다. 레퍼런스는 당근마켓 입니다. 새로 배운 API나 서버 통신 개념이 많았고 채팅 기록을 불러오고 표현할 때 간단히 알고리즘을 사용하기도 했던 터라 총 3부로 나눠서 블로그에 업로드할 예정입니다. Salle 프로젝트 코드 Github(진행중) 1부: Chat Application 설계, 후기 & WebSocket 설명, Config 설정하기 2부: DB 설계 & 상품 페이지(productInfo)에서 채팅 시작하기 3부: 채팅 리스트(chatList) 만들기 + WIL(What I learned) 정리 최종 구현완료된 ChatApplication Ⅰ. Chat Ap..
2021.02.04 -
[번아웃] 번아웃 이겨내기
번아웃은 하는 일에 지나치게 몰두하던 사람이 극도의 신체적, 정신적 피로감을 느끼면서 무기력해지는 현상을 말한다. 새해가 된지 2주가 흘렀을 때쯤 오류 때문에 몇시간 동안 좌절에 빠져 프로젝트를 잡고 있다가 성과없이 버스를 타러 나갔다. 정류장에 섰는데 급격한 정신적인 피로감이 몰려와 좌절감, 우울 그리고 무기력함에 감정이 무너졌다. 그러고 말겠거니 했다. input 대비 output이 적지만 이런 날들을 버티다보면 프로젝트를 완성시키고 개발자로서 성장할거라 입버릇처럼 말했다. 하지만 그 날의 감정은 오늘까지 남아 생활과 하는 일에 부정적인 영향을 미치고 프로젝트 진행에 지장을 주고 있다. 내가 겪고 있는 상황이 나쁘다는 사실을 부인하는 좋지 않은 습관이 있다. 예를 들어 이번 일을 겪으면서 난 이렇게 ..
2021.01.25 -
8. 판매자 프로필 만들기
Ⅰ. 판매자 프로필 스펙 & 이슈 사용자의 입장에서 중고거래를 할 때 판매자의 지난 상품 리스트로 레퍼런스 체크를 하는데요, 뿐만 아니라 판매자도 본인의 등록한 상품들을 수정하거나 삭제할 수 있는 하나의 관리화면이 필요합니다. 프로필 페이지를 만들기 위해 필요한 정보는 판매 상품 목록(productList), 판매 상품 개수(productCount), 판매 완료 개수 정도(soldProductCount)이 있으며 추가할 기능으로는 판매자 본인에 한해 판매글 수정과 삭제 권한 부여가 있습니다. 서버에서는 DB의 PRODUCT 테이블을 그대로 불러오는 SELECT, 수정할 경우 UPDATE, 삭제는 DELETE들(SQL DML(Data Manipulation Language) 들을 사용해주기만 하면 됩니다...
2021.01.21 -
[회고] 과거가 현재를 정의하게 하지마라
Ne laisse pas le passe definir ton present - 과거가 현재를 정의하게 하지마라 - Don't let your past define your present 지난 주 주말부터 넷플릭스을 보느라 밤을 새우는 날이 연속으로 3일 되었을 정도로 드라마에 빠져있었다. '어둠속으로', '오자크', '모던패밀리'를 봤다. 그러다보니 얼굴에 뾰루지가 나고 커피없인 작업하기 어려웠다. 아니 쇼파에 앉아있으면 눈이 감겼다. 이만큼 내 일상에 지장을 줬다. 위 문장은 '어둠속으로' 벨기에 미스터리/스릴러/SF 드라마에서 나온 대사다. 벨기에는 지역에 따라 네델란드어, 프랑스어를 사용하는데 이 드라마에선 프랑스어를 썼다. 자기장이 잘못돼 태양광을 맞으면 전자렌지에 돌려진 것처럼 생명체가 기능을..
2021.01.18 -
Error - 비정상적인 LoginSession 점유
메인 화면의 로그인/회원가입 탭은 LoginSession의 유무에 따라 사용자 ${nickName}님 으로 탭 화면이 전환됩니다. 그런데 Login 과정에서 비밀번호나 이메일이 틀린경우에도 LoginSession이 채워져 메인 화면에 ${공란}님 으로 뜨는 오류가 있었습니다. 몇가지 가설을 세우고 차례대로 해결해가면서 문제를 파악하려 했습니다. 가설 1. 로그인이나 회원가입에 실패해도 Model의 Member 객체에 입력값이 들어있다. LoginInterceptor 클래스에서 session.setAttribute(name, value) name을 "member"로 처리하고, LoginController나 RegisterController 입력값도 "member" name으로 model에 담아줬습니다. 그..
2021.01.12 -
7. 검색창 검색기능 (2) - Frontend 부분
검색창은 home 화면에 위치합니다. 사용자가 화면을 줄였을 때 검색창과 로고가 보이되 비율에 맞춰 shrink 되지 않도록 CSS display를 설정하고 싶었습니다.(ex.네이버, 당근마켓) 그래서 youtube로 CSS 공부를 해보았습니다. 100% 맞진 않으니 참고만 해주세요. display는 크게 block, inline-block, inline, flex가 있습니다. block은 벽돌이라 생각하면 됩니다. 벽돌은 하나의 row를 모두 차지합니다. 따라서 행이 바뀝니다. inline은 그와 반대인 개념이며 inline-block은 둘이 섞은 것인데 화면에 들어가있는 라던지 컨텐츠 width가 사용자가 브라우저 크기에 모두 들어간다면 inline으로 표시되다가 크기를 축소해버려 같은 row에서 모..
2021.01.11