2024/08 35

계획단계(판매권한 심사 시스템)

계획 단계에서 올린 6번 안이 판매를 아무나 할 수 없게 하는 것이였다.여기서 Spotify for Artist Api가 존재하는가 하지 않는가를 확인해봤는데 아무래도 존재하지 않는 것 같고 레딧의 글이나 관련 커뮤니티의 질문, 댓글을 보니까 요청을 해도 응답자체가 없다는 말밖에 존재하지 않았다. 그렇다면 요청을 해보는 것도 의미가 없는 행동일테고, Spotify for Artist Api로 권한 심사를 하는 것은 불가능하다는 판단으로 계획을 바꿀 필요가 있었다.난 이 기능을 관리자가 하게 만들고 싶지 않다. 언제 사용자가 평가해달라고 올리는 것을 다 들어보고 언제 승인하며, 만약 이게 진짜 사업이라면 또 인건비는 어떻게 할 것인가. 그걸 아끼자고 본인이나 직원이 한다고 생각하면 그것도 또 그거대로 피곤..

UPDATE JOIN 적용 AJAX 실시간 좋아요 반영

기존에 만들어 둔 UPDATE JOIN 쿼리는 있으니 그대로 가져와서 메서드 실행할 때 두개의 쿼리가 작동하게끔 짰다.짜보니까 반영이 잘 되는 것 같고 확인하기 위해서 alert를 띄우던 코드를 지웠다.그런데 이게 문제가 좋아요도 잘 되고, 싫어요, 좋아요가 되어있을 때 싫어요를 클릭하면, 좋아요 취소와 동시에 싫어요가 반영되는 건 잘 된다. 근데 좋아요가 되어있을 때 좋아요 취소와 싫어요가 되어있을 때 싫어요 취소가 안된다. 다른건 잘 작동하니까 아마 쿼리가 잘못된거라고 예상한다. 일단은 지금까지 짜 놓은 코드를 한번 보자. @RequestMapping("/article/doReaction") @ResponseBody public ResultData doReaction(HttpServl..

Coding History 2024.08.26

로컬 스토리지와 세션 스토리지

로컬스토리지로컬 스토리지는 웹 브라우저에서 제공하는 기능으로, 사용자가 방문한 웹사이트가 데이터를 사용자의 브라우저에 저장할 수 있도록 해준다. 이 데이터는 브라우저를 닫거나 컴퓨터를 재시작해도 계속 유지되며, 특정 사이트에서만 접근할 수 있다. 로컬 스토리지는 쿠키와 비슷하지만, 차이점이 존재한다.로컬 스토리지의 특징:용량: 로컬 스토리지는 일반적으로 5MB에서 10MB 정도의 데이터를 저장할 수 있다. 이는 쿠키의 저장 용량(4KB)보다 훨씬 크다.유지 기간: 로컬 스토리지에 저장된 데이터는 사용자가 직접 삭제하지 않는 한 브라우저에 무기한 저장된다. 쿠키는 만료 기간이 설정될 수 있다.보안: 로컬 스토리지의 데이터는 해당 웹사이트의 도메인에서만 접근할 수 있다. 다른 웹사이트나 도메인에서는 접근할 ..

Coding History 2024.08.24

국비 지원 IT(웹앱개발) 취업반 강의 55일차 (Spring)

어제 만든 doReaction을 가만 생각해보니까 ResultData를 만들어놨는데 왜 이걸 사용안했나 싶어서 수정을 했다.졸면서 해서 정신이 없었나.. @RequestMapping("/article/doReaction") @ResponseBody public ResultData doReaction(HttpServletRequest req ,@RequestParam int id, @RequestParam String relTypeCode, @RequestParam int relId) { Rq rq = (Rq) req.getAttribute("rq"); int resultPoint = reactionPointService.toggleReactionPoint(rq.g..

Coding History 2024.08.23

국비 지원 IT(웹앱개발) 취업반 강의 54일차 (Spring)

어제 새로운 DB 테이블을 생성하고 끝났다. 하루종일 개인프로젝트에 대한 상담을 했고, 내 계획은 따로 텝을 생성해서 포스팅해두었다.여하튼 좋아요 기능을 이제 DB와 연동시켜서 데이터를 남겨야하는데 이걸 만들어보자.@Servicepublic class ReactionPointService { @Autowired private ReactionPointRepository reactionPointRepository; public List getReactionPoints(String relTypeCode, int relId) { return reactionPointRepository.getReactionPoints(relTypeCode, relId); } public in..

Coding History 2024.08.23

개인 프로젝트 준비(트랙 판매? 샘플 판매 사이트)

주제 선정의 이유나의 글을 정독한 사람이라면 나는 음악을 하는 사람이라는 것을 알 수도 있을 것이다.내 소개부터 하자면, 별건 아니고 FL Studio를 사용해서 작곡을 하거나 베이스를 연주한다. 전공도 실용음악에 석사 졸업이고 나름 깊게 팠다면 깊게 판 사람이다.서론은 치우고, 그래서 이 수업에서 개인프로젝트를 처음부터 전공과 엮을 생각을 하고 있었다. 수업을 듣는 와중에도 곡을 써서 유튜브에 업로드한 적이 있는데 qBlackBirdp - Movie Life 이런 작업을 계속 해오던 사람이다.아무런 정보도 없이 혼자 독학해서 곡을 써왔고 처음엔 당연히 하나하나 내가 다 만들었지만 공부가 깊어질 수록 다양한 것들을 알게 되었고 트랙 판매의 개념, 가상악기의 셋팅 값을 저장해서 판매도 이루어지고, 샘플 판..

국비 지원 IT(웹앱개발) 취업반 강의 53일차 (Spring)

조회수 기능을 만들고 보니까 없는 게시물에 대한 처리를 하지 않았다. 그에 대한 처리를 해주자. @RequestMapping("/usr/article/detail") public String showDetail(HttpServletRequest req, Model model, int id) { Rq rq = (Rq) req.getAttribute("rq"); ResultData increaseHitCountRd = articleService.increaseHitCount(id); if (increaseHitCountRd.isFail()) return rq.historyBackOnView(increaseHitCountRd.getMsg()); Ar..

Coding History 2024.08.22

AJAX (Asynchronous JavaScript and XML)란?

AJAX는 웹 페이지에서 동적으로 데이터를 주고받아, 전체 페이지를 다시 로드하지 않고도 웹 페이지의 일부분을 업데이트할 수 있게 해주는 기술이다. 즉, 사용자가 웹 페이지에서 특정 동작을 할 때, 전체 페이지가 새로고침되지 않고도 필요한 데이터를 서버에서 가져와서 화면에 반영할 수 있게 해준다. 주요 특징비동기성 (Asynchronous)AJAX의 가장 큰 특징은 비동기적(실시간)으로 동작한다는 것이다. 이는 요청을 보내고 서버의 응답을 기다리는 동안에도 다른 작업을 계속할 수 있다는 의미다.ex) 사용자가 버튼을 클릭해서 데이터를 요청하더라도, 페이지가 멈추거나 새로고침되지 않고, 사용자의 활동에 제약없이 페이지를 이용할 수 있다.부분 업데이트AJAX를 사용하면 웹 페이지의 특정 부분만 업데이트할 수..

Coding History 2024.08.21

국비 지원 IT(웹앱개발) 취업반 강의 51일차 (Spring)

처음 시작은 Rq 객체 관리를 Spring이 하게끔 바꾸는 것 부터 시작했다. 솔직히 뭔소린지 이해는 안되는데 코드를 보면 약간은 알 것 같기도 하고.@Controllerpublic class UsrMemberController { @Autowired private MemberService memberService; @Autowired private Rq rq; @RequestMapping("/usr/member/join") public String showJoin() { return "/usr/member/join"; } @RequestMapping("/usr/member/doJoin") @ResponseBody public String..

Coding History 2024.08.19