분류 전체보기

    트랜잭션 및 외래키 제약 조건 문제

    📝느낀 점이번 프로젝트를 통해 라이브러리 사용법과 데이터베이스 트랜잭션 관리의 중요성을 알게 되었습니다. 특히 트랜잭션 관리를 소홀히 할 경우 생각지 못한 오류가 발생할 수 있음을 알게 되었습니다. 또한, 데이터베이스의 외래키 제약 조건을 유지하면서 논리적 삭제를 처리하는 방법을 배우며, @SQLDelete와 @Where 어노테이션의 유용성을 깨달았습니다. 사용자 입력 데이터의 유효성을 철저히 검증하는 것이 시스템의 안정성을 위해 얼마나 중요한지 알게 되었습니다. 이러한 경험을 바탕으로 유사한 문제를 더 효과적으로 해결할 수 있는 경험을 하게 되었습니다. 이번 경험은 앞으로의 개발에 도움이 될 것이라고 생각합니다.  어떻게 했기에 문제상황을 마주하게 되었는지회원 탈퇴 기능을 구현하는 과정에서 RESTf..

    NonUniqueResultException 해결하기

    📝느낀 점이번 작업을 통해 배우고 경험할 수 있었습니다. 특히, 실제 개발 환경에서 발생하는 예외 상황을 해결하면서 기술적으로나논리적으로나 성장할 수 있는 좋은 기회가 되었습니다. 그중에서도 예외 처리 경험에 대해 작성하려고 합니다.NonUniqueResultException과 같은 예외는 데이터베이스 쿼리에서 단일 결과를 기대할 때 발생할 수 있는 흔한 문제라고 생각합니다. (하지만 처음에는 에러가 발생해 당황했던것 같습니다.) 이런 예외가 발생할 수 있는 상황을 미리 고려하여 코드에 반영하는 것이 중요하다는 것을 느꼈던것 같습니다. 예외를 사전에 처리함으로써 애플리케이션의 안정성을 높일 수 있었다고 생각합니다. 그리고 이번 문제를 해결하면서 Optional을 사용하여 데이터베이스 쿼리 결과를 안전하..

    비밀번호 찾기 및 재설정과 임시 비밀번호 문제

    📝느낀 점비밀번호와 같은 민감한 데이터를 처리할 때는 반드시 안전하게 관리해야 한다는 점을 알게 되었습니다. 임시 비밀번호를 해싱하지 않고 저장하는 실수를 수정함으로써 데이터 보안을 강화할 수 있었습니다. 이를 통해 보안의 중요성을 다시 한 번 인식하게 되었고, 작은 실수가 큰 문제로 이어질 수 있다는 것을 알게 되었습니다. 또한, 서버에서 보안을 유지하기 위한 코드 리뷰와 테스트의 중요성을 배웠습니다. 지속적인 코드와 시스템 개선의 필요성을 느꼈습니다. 보안이 강화된 시스템은 사용자 신뢰도를 높일 수 있고, 개인정보 유출 사고를 예방할 수 있음을 깨달았습니다. 이번 경험을 바탕으로 앞으로 더 나은 보안 관행을 선택하는 데 큰 도움이 될 것이라고 생각합니다.  어떻게 했기에 문제 상황을 마주하게 되었는..

    MySQL과 S3를 활용한 효율적인 설계

    📝느낀 점이번 프로젝트를 통해 AWS S3와 MySQL을 활용한 이미지 관리 효율성을 체감할 수 있었습니다. 클라우드 스토리지와 관계형 데이터베이스를 결합하여 성능 측면에서 만족스러운 결과를 얻을 수 있었습니다. 앞으로도 이와 같은 설계를 바탕으로 더욱 효율적이고 안정적인 시스템을 구축해 나갈 수 있을 것이라고 생각하였습니다. SNS를 개발할 때 이미지 저장 방식은 중요한 고려 사항입니다. 이 글에서는 AWS S3를 활용해 이미지를 저장하고 MySQL 데이터베이스에 해당 URL을 저장하는 방법에 대해 상세히 설명하도록 하겠습니다. AWS S3란 무엇인가?AWS S3는 Amazon Web Services에서 제공하는 객체 스토리지 서비스입니다.S3는 대용량 데이터를 안전하게 저장하고 필요할 때 언제든지접..

    자바와 스프링 프레임워크에서의 싱글톤 패턴과 전략 패턴

    📝느낀 점두 패턴을 학습하고 활용하는 과정에서 여러 가지 유익한 점을 느꼈습니다. 싱글톤 패턴을 통해 자원을 효율적으로 관리하고, 일관된 상태를 유지할 수 있었습니다. 특히 설정 정보 같은 공통으로 사용하는 하나의 인스턴스를 공유함으로써 중복을 방지하고 일관성을 유지할 수 있었습니다. 스프링 프레임워크에서 기본적으로 제공하는 싱글톤 빈 스코프 덕분에 빈 관리가 편리해지고, 추가적인 코드 작성 없이도 효율적인 자원 관리를 구현할 수 있었다고 생각합니다. 그리고 전략 패턴을 통해 캡슐화하고 교체 가능하게 만듦으로써 코드의 유연성을 높일 수 있었습니다. 다양한 방법을 쉽게 교체하거나 추가할 수 있어 비즈니스 요구사항 변화에 유연하게 대응할 수 있었습니다. 스프링의 의존성 주입을 통해 전략 객체를 런타임에 주..