본문 바로가기

전체 글

(46)
Cursor AI, Claude Code 공부 및 사용 후기 좌충우돌 첫 출근 후 첫 블로그다 (와!!)대리님이 회사에서 Claude Code를 많이 사용하신다고 해서 관련 내용 공부할겸 블로그에 정리해본다.요즘 개발쪽은 뭐 ai 정말 많이 써서 나도 그냥 검색형 ai 정도는 gemini, claude, gpt, perplexity 등등 많이 사용해봤는데 cursor나 클로드 코드 처럼 AI 코딩 도구는 써보지 않았다. ... 빨리 써봤어야 했다. 진짜 정신나간 도구들이다. 난 이제까지 그래도 llm에 코드 검색해서 폴더에 파일 직접 붙여넣는 작업까지는 내가 직접 해야하는줄 알았다. 실제로 써보고나니 개발자가 왜 확 줄어들었는지 체감이 컸다. 일단 간단하게 Cursor AI와 Claude Code를 정의해보자면 AI 개발 에이전트 들이다. CursorAI는 자체..
[JPA] n+1 문제 발견 및 해결법 오늘은 프로젝트를 하다가 재미있는 현상을 하나 발견해서 실험을 한번 준비해봤다. 서치해보니 이미 JPA를 사용해본 사람들 사이에선 널리 알려진 문제기에 해결법도 잘 나와있다. 이번의 경우에는 JPA를 좀 더 깊게 공부해볼겸 나의 문제 풀이 경험을 덧대어 해석해보겠다. 문제프로젝트 고도화 해보려고 내 사이트에 구현해놓은 댓글창을 여는 중에 SpringBoot 서버에서 로그가 계속 뜨는것을 확인했다. Hibernate로 시작하는 로그였다.여기서 Hibernate란 무엇이냐? 객체 관계 매핑 프레임워크로, JPA의 구현체 중 하나이며 복잡한 SQL 쿼리 대신에 Page findByperComic_IdAndDeletedFalse(int perComicId, Pageable pageable); 이런식으로만 입력..
SpringBoot 캐시 사용하여 페이지 최적화하기 먼저 캐시를 왜 사용하는지에 대해 먼저 알고 싶다면 아래 잘 정리된 글이 있어 보면 도움이 될것이다. https://jeongkyun-it.tistory.com/173#google_vignette 캐시/ 웹 캐시(Cache)란? (개념/ 사용 이유/ 장점/ 동작 원리)서론 요즘 웹/ 모바일 등 개발에 있어 캐시 사용을 안한것을 찾기가 어려울 정도로 캐시 사용이 대중화가 되었다. 이 캐시(Cache)가 무엇이고 어떻게 사용하는지 한번 알아보자. 캐시(Cache)란? 캐시jeongkyun-it.tistory.com 간단하게 필자가 캐시를 쓰려는 의도는 웹툰 플랫폼이기에 select 처리해야 할 정적 이미지와 글들이 많기 때문에 한곳에 저장해놨다가 쿼리를 돌리지 않고 가져오면 더 빨리 실행될 수 있기에 최적..
서버 배포된 상태로 웹에 이미지 가져오기 SNS 로그인도 살아났고 개발환경에서 했던것처럼 잘 돌아오나 싶었는데 아니나 다를까 이미지를 전혀 가져오지 못하고 있었다... 허헣 또 고쳐놔야지 뭐,사실 오류가 나는 이유는 명확하다. 리눅스로 서버를 옮겨놓고 난 후의 주소는 로컬 Windows에서 썼던 주소랑은 당연히 다를테니까! 일단 필자가 절대 경로가 아니라 상대경로를 통해서 이미지를 받아오도록 구현해놨는지 부터 확인해봐야겠다. // 2. 공개된 작품 조회 @GetMapping("/public") public ResponseEntity> getPublicComics() { List comics = comicRepository.findByIsPublicTrue(); // or findByIsPublicTrue Li..
리버스 프록시(nginx) 개념 공부 (SpringBoot + React + Nginx + 포트포워딩) 현재 필자는 그간 만들어온 웹툰 플랫폼에 대한 배포 작업중에 있다.Spring Boot 서비스 파일도 만들고, React도 서버단에 올려놓고 (Nginx) 실행하며 발생했던 오류를 정리해놓는다. 리버스 프록시란? 먼저 리버스 프록시에 대한 개념부터 살펴보겠다. 클라이언트와 웹 서버 간에 중개자 역할을 하는 서버를 말하는데, 클라이언트로부터의 요청을 대신 받아서 웹 서버에 전달하고, 그 웹 서버의 응답을 클라이언트에게 전달하는 역할을 해준다. 웹 서버의 부하를 분산시키고, 보안을 강화하는 등의 기능을 수행할 수 있다고 한다. 기본 작동 원리는 클라이언트가 리버스 프록시에 요청을 보내면, 리버스 프록시는 요청을 웹 서버에 전달하고, 웹 서버는 요청된 데이터를 처리한 후 리버스 프록시에게 응답을 보낸다. 그리..
[SpringBoot] 프로필 만드는 방법 배포 작업중에 봉착한 문제, 리눅스 서버에서 서비스 파일을 만들어서 정상적으로 굴리고 있지만 페이지가 영 뜨질 않았다(...)아마 외부 포트에 대한 방화벽이 아직 해제가 안돼서 자꾸 타임아웃이 뜨나보다.. 프론트단 배포는 외부포트 허용하고 나중에 다시 시도해보기로 하고 우선 기존 솔루션부터 로컬로 돌려보며 고도화해보기로 한다. 그런데 맙소사 기존 application.properties를 리눅스 서버 기준으로 설정해서 처음부터 싹 지우고 만들어야 했다... 이럴때 사용할 수 있는것이 Profile이다. https://lordofkangs.tistory.com/320 [SpringBoot] Profile 사용하기app.jar가 있다. 개발환경에서는 app.jar는 dev 설정파일이 필요하다. 운영환경에서..
Redis 설치 및 조회수 기능 구현 (웹툰 회차 조회수 증가 기능 구현) https://lifewithcoding.tistory.com/289 윈도우에서 Redis를 사용하기(공식적인 방법)윈도우에서는 공식적으로 Redis를 지원하지 않는다.(아래 공식문서 참고) https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-windows/ Install Redis on WindowsUse Redis on Windows for developmenlifewithcoding.tistory.com 오늘은 웹툰 회차에서 사용자가 특정 회차에 들어왔을때, 해당 회차의 조회수를 증가시켜 UI에 표시해보는 기능을 구현할 것이다.조건은 다음과 같다.비회원 로그인과 로그인 회원 모두 조회수가 올..
[카카오] 개인정보 동의 항목 정보 가져오기 (테스트앱), 채널 개설 후 연동 시작하기 전에 본인이 필자처럼 개인 프로젝트 및 테스트 용으로 카카오 채널 및 비즈앱 전환이 필요하다면 홈텍스에서 사업자등록 하고 오셔야한다. 생각보다 절차가 어렵지는 않았다. 다만, 하나 유의해야할건 인허가 서류가 필요한 업종인지 확인을 잘 해보길 바란다. 필자는 전자출판업으로 지정해놨다가 출판사인증서 뽑아와야 한다고 해서 전화 한번 왔었다(...) 아마 정보통신업 쪽의 업종이면 웬만하면 인허가 서류가 필요없을것이라 그쪽 계열 추천! 만약 개인 프로젝트에 개인 포함 소수 팀원들만 사용 예정이라면 테스트앱만 만들어도 아래의 권한없는 이름, 성별, 전화번호 등을 가져올수 있다.일단 개인 사업자 등록후 비즈앱으로 전환하여 카카오계정(이메일) 까지는 뚫어 놓은 상태인데 내가 진짜 필요한 정보는 실제 이름, ..