레이캐스트 (Raycast) 사용기... 스팟라이트 알프레드는?
·
Mac
레이캐스트 사용 후기 - 맥 사용자의 생산성 도구 안녕하세요! 맥을 사용한지 2년 차가 된 주니어 개발자입니다. 오늘은 최근에 시작한 레이캐스트(Raycast) 사용 경험을 공유해보려고 합니다.  맥 사용자가 되기까지윈도우 PC를 사용할 때는 자주 사용하는 프로그램들을 바탕화면의 폴더별로 정리해두고 클릭으로 실행하는 방식을 주로 사용했었습니다. 하지만 맥으로 전환하고 나서 스팟라이트(Spotlight)의 매력에 푹 빠져버렸죠. 이제는 스팟라이트 없이는 컴퓨터를 사용할 수 없을 정도가 되어버렸습니다. 레이캐스트와의 만남얼마 전, 생산성을 극대화해준다는 알프레드(Alfred)와 레이캐스트(Raycast)라는 프로그램들을 알게 되었습니다. 여러 리뷰를 찾아보던 중 알프레드보다 레이캐스트를 추천하는 글을 보게 ..
Spring 웹 애플리케이션 마이그레이션: 파일 권한 문제 해결기
·
IT
Spring Boot 웹 애플리케이션 마이그레이션: 이미지 파일 권한 문제 해결기들어가며웹 애플리케이션 마이그레이션 작업 중 흔히 겪을 수 있지만, 원인을 파악하기 쉽지 않은 문제가 있습니다. 바로 파일 권한 문제입니다. 이번 글에서는 제가 최근 겪은 이미지 파일 접근 권한 문제와 그 해결 과정을 공유하고자 합니다.문제 상황기존 웹사이트의 데이터를 새로운 Spring Boot 애플리케이션으로 마이그레이션하는 작업을 진행했습니다. 데이터베이스 마이그레이션은 성공적으로 완료되었고, 게시글에 첨부된 이미지 파일들도 새 서버의 적절한 위치로 모두 복사했습니다.하지만 웹 애플리케이션을 실행하고 게시글을 열어보니 이미지가 전혀 표시되지 않는 문제가 발생했습니다. 개발자 도구로 확인해보니 이미지 요청에 대해 403 ..
2024/12 Today I Learned
·
Today I Learned
November 목표 :듣다 말았던 김영한님의 강의 'HTTP 기본' 완강마찬가지로 듣다 말았던 정수원님의 '스프링 시큐리티 완전 정복' 수강 (아직 초기이기 때문에 이번달안에 완강은 힘들 것 같다.)지난달 목표였던 'HTTP 기본'강의는 완강완료하였다.추가로 '350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법'을 들으며 앱개발에 괸심이 가게 되어 이것저것 둘러보는중이다.스프링 시큐리티는 회사에서 일하면서도 스프링을 만질일이 종종 있다보니 조금 뒤로 미루기로 하였다.December 목표 :'350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법' 완강예전부터 해보고싶었던 IOS개발을 위해 정말 간단한 Swift강의부터 조금씩 들을 예정이다.-> '개발하는 정대리 스위프트 기초 문법' 강의..
2024/11 Today I Learned
·
Today I Learned
국비 수료를 하고 인프런에서 김영한님의 스프링 강의 및 스프링 시큐리티 강의등을 들으며 매일 열심히 취업을 향해 달려가고 있었습니다. 이전 글의 Today I Learned가 더 이상 작성되지 않고 있는 것을 보셨다면 아시겠지만 잠시 개발 권태기가 왔던 것인지 그냥 놀고 싶었던 것인지 모르겠습니다. 몇달간 개인적인 공부를 하지 않고 있었네요... 허허 최근들어서 다시 개발에 대한 의욕도 올라오고 해서 다시금 블로그 작성을 통하여 자기계발을 노력해보려고 합니다.  November 목표 :1. 듣다 말았던 김영한님의 강의 'HTTP 기본' 완강2. 마찬가지로 듣다 말았던 정수원님의 '스프링 시큐리티 완전 정복' 수강 (아직 초기이기 때문에 이번달안에 완강은 힘들 것 같다.) November TIL :19일 ..
JPA를 활용한 성능 개선 경험 회고
·
Framework&Tools/Spring
최근 진행했던 프로젝트에서 데이터베이스 성능 문제를 해결하기 위한 여정을 공유해보고자 합니다. 프로젝트 초반에는 마이바티스(MyBatis)를 이용하여 다수의 테이블을 조인하며 데이터를 조회했지만, 성능 문제가 점점 심각해졌습니다. 프로젝트 진행 당시에는 팀원 모두가 JPA를 갑자기 학습할 수도 없으니 추후에 나 혼자 해당문제를 해결 해보자고 생각했습니다. 그래서 이후에, 이 문제를 개선하고자 JPA(Java Persistence API)를 도입했지만, 초반에는 n + 1 문제로 인해 큰 성능 개선을 이루지 못했습니다. 이 글에서는 문제 해결 과정과 그 결과를 상세히 다루어 보겠습니다. 문제 상황: 성능 저하프로젝트 초기에는 MyBatis를 사용하여 복잡한 쿼리를 작성했습니다. 하지만 여러 테이블을 조인하..
2024/07 Today I Learned
·
Today I Learned
July이번달 목표 : DrunkHouse 프로젝트 1차목표 마무리 및 PetHub 개인프로젝트 완료1일 : PetHub 쿠폰 서비스 (회원의 등급에 따른 역할 수행) 구현2일 : PetHub 모든 쿠폰 구현완료, 관리자 승급 및 강등 기능, 관리자일 경우 상품등록 구현 완료3일 : Spring Data JPA와 QueryDSL을 이용하여 게시판 기능구현  1. QueryDSL을 이용해 페이징 및 검색기능 동적쿼리로 작성하여 구현  2. get메서드와 html파일을 카테고리별로 각각 하나씩 가져서 무수히 많던 중복된 코드들을 boardType을 정의해주면서 하나의 메서드와 html파일로 묶어서 처리하게끔 개선 4일 : 개인프로젝트 게시판 crud, 댓글 crud 모두 구현완료 및 고객지원페이지 구현완료5..
팀 프로젝트 회고 [Pet Hub]
·
IT
프로젝트에서 배운 점MVC 패턴과 데이터베이스 접근 방법의 최적화  문제점프로젝트 진행 중, 트랜잭션 내 데이터 접근과 데이터베이스 조인 최적화에 관련된 두 가지 주요 문제를 겪었습니다.트랜잭션 내 데이터 접근 문제: MVC 패턴을 사용하며 MyBatis로 데이터베이스 접근을 하는 중, 서비스 레이어에 @Transactional을 적용하여 트랜잭션 내에서 작동하도록 설계했습니다. 회원가입 서비스에서, 주소(Address) 테이블이 회원(Member) 테이블을 참조하는 구조를 사용했습니다. 회원 테이블에 데이터를 먼저 삽입한 후 자동 증가된 PK 값을 주소 테이블에 삽입하려 했으나, 트랜잭션이 완료되기 전에 데이터를 조회하려다 보니 멤버의 ID를 정상적으로 얻을 수 없었습니다.데이터베이스 조인 최적화 문제..
팀 프로젝트 회고 [Smart Farm]
·
IT
프로젝트에서 배운 점로컬환경과 배포환경의 차이에 대한 고찰문제점프로젝트 배포 전, 모든 기능이 정상적으로 작동함을 확인했으나 AWS EC2에서 Docker로 빌드한 애플리케이션을 배포했을 때 두 가지 문제점이 발생했습니다.일부 페이지에 접속 시 에러 페이지가 나오며 렌더링되지 않는 현상아두이노 상태를 체크할 수 있는 apk 파일을 다운로드 페이지에서 정상적으로 다운로드할 수 없는 현상해결과정로컬 환경에서는 문제가 없었기에 배포 후에도 코드가 동일함에도 불구하고 문제가 발생한 것에 대해 이해하기 어려웠습니다. 강사님의 도움을 받으려 했으나, 즉각적인 해결이 어려워 스스로 문제를 해결하기로 했습니다.구글링을 통해 개발 환경과 배포 환경의 차이로 인해 발생할 수 있는 오류를 알게 되었습니다. 가장 직관적으로 ..