BACKEND87 [오브젝트와 의존관계] - 제어의 역전(IoC) IoC라는 약자로 많이 사용되는 제어의 역전(Inversion of Control)이라는 용어가 있다. 스프링을 통해 일반 개발자에게는 많이 알려진 용어이지만, 개념은 상당히 오래전부터 있었다. 1. 오브젝트 팩토리지금까지는 문제가 많은 DAO를 깔끔한 구조로 리팩토링 하는 작업을 진행했다. 그 과정에서 생략한 부분이 바로 클라이언트 UserDAOTest이다. UserDAOTest는 기존에 UserDAO가 직접 담당하던 기능, 즉 어떤 ConnectionMaker 구현 클래스를 사용할지를 결정하는 기능을 엉겁결에 떠맡았다고 볼 수 있다. UserDAO가 ConnectionMaker 인터페이스를 구현한 특정 클래스로 부터 완벽하게 독립할 수 있도록 UserDAO의 클라이언트인 UserDAOTest가 그 .. 2025. 5. 4. [오브젝트와 의존관계] - 관계 설정 책임의 분리 이전에 UserDAO와 ConnectionMaker라는 두 개의 관심을 인터페이스를 통해 완벽하게 분리했음에도, 왜 UserDAO가 인터페이스뿐아니라 구체적인 클래스까지 알아야하는가라는 의문을 가졌다. 그 이유는 여전히 UserDAO에는 ConnectionMaker 구현 클래스를 사용할지를 결정하는 코드가 남아있기 때문이다.인터페이스를 통한 분리에도 불구하고 여전히 UserDAO 변경 없이는 DB Connection 기능의 확장이 자유롭지 못한데, 그 이유는 UserDAO안에 분리되지 않은 또 다른 관심사항이 존재하고 있기 때문이다. [오브젝트와 의존관계] - DAO의 확장이전는 데이터 엑세스 로직을 어떻게 만들 것인가와 DB 연결을 어떤 방법으로 할 것인가라는 두 개의 관심을 상하위 클래스로 분리하여.. 2025. 5. 3. [오브젝트와 의존관계] - DAO의 확장 이전는 데이터 엑세스 로직을 어떻게 만들 것인가와 DB 연결을 어떤 방법으로 할 것인가라는 두 개의 관심을 상하위 클래스로 분리하여 학습을 진행하였다. 이 두 개의 관심은 변화의 성격이 다르고, 그것은 변화의 이유와 시기, 주기 등이 다르다는 것을 의미한다.이전 관심사의 분리에 대해서 기억이 나지 않는다면 아래 포스팅을 확인하여 한 번 더 어떻게 분리를 하였는지 확인할 수 있다. 오브젝트와 의존관계 - 관심사의 분리지난 문서에서는 DAO, Data Access Obejct란 무엇인가. 그리고 과정은 어떻게 되는 가에 대해서 알아보았습니다.지난 문서를 다시 확인하고 싶으시다면 아래 링크를 클릭 하시면 DAO에 대해서 다시 같lifeisstudy-hong.tistory.com 오늘은 DAO의 확장을 통해.. 2025. 5. 3. [오브젝트와 의존관계] - 관심사의 분리 지난 문서에서는 DAO, Data Access Obejct란 무엇인가. 그리고 과정은 어떻게 되는 가에 대해서 알아보았습니다.지난 문서를 다시 확인하고 싶으시다면 아래 링크를 클릭 하시면 DAO에 대해서 다시 같이 학습할 수 있습니다. 오브젝트와 의존관계 - DAO개발 1년차. 요즘 기본기와 기초가 많이 부족한 거 같다는 생각을 많이한다. 누구는 그렇게까지 깊게 공부하지 않아도 GPT가 다 해준다라는 속 편한 말을 하는 직장 동료도 있지만 꾸준히 하다보lifeisstudy-hong.tistory.com오늘은 지난 학습 때 들었던 의문점인 데이터베이스가 변경되게 된다면 그 수 많은 기능에 대한 Connection을 전부 변경해줘야 하나? 라는 의문에 대해 관심사를 분리함으로써, 데이터베이스 연결과 기능 .. 2025. 5. 3. [오브젝트와의존관계] - DAO 개발 1년차. 요즘 기본기와 기초가 많이 부족한 거 같다는 생각을 많이한다. 누구는 그렇게까지 깊게 공부하지 않아도 GPT가 다 해준다라는 속 편한 말을 하는 직장 동료도 있지만 꾸준히 하다보면 GPT보다는 덜 하겠지만 스스로가 뿌듯해지는 순간이 오지 않을까하여 기본기를 다지기 위해 다시 공부를 하려고 한다. 오늘 처음 공부할 부분은 DAO ( Data Access Object ) 이다. 1. DAO ( Data Access Object )DAO는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트로, DB와 직접적인 관계를 가지고 있다고 생각하면 된다. 1.1. DAO의 수행 절차데이터베이스 연결을 위한 Connection을 가져온다.SQL을 담은 Statement ( 또는 pr.. 2025. 5. 3. Spring Security - BadCredentialsException 이전에 공부를 한 부분이지만, 아직 Spring Security에 대한 이해도가 낮은 것은 사실입니다..그래서 해당 게시글은 원래도 스스로 학습의 개념이지만, 그냥 기록상의 이유 그리고 나중에 찾아보는 용도로 정리하려고 한다.BadCredentialsException로그인 기능을 구현할 때, 원인을 모르는 로그인 실패시에 로그도 확인이 안되 아래와 같이 디버그를 진행해서 어떤 문제가 있었는지 확인할 수 있었다. 그리고 해당 커스터마이징 과정은 가장 아래 git 을 통해 내려받을 수 있다. org.springframework.security.authentication.BadCredentialsException:자격증명에 실패하였습니다. 위의 이유를 자세히 보면 BadCredentialsException .. 2024. 6. 15. [Spring boot] Spring Security static 폴더(CSS,JS) 적용 문제 해결하기 Spring Security를 이용해 접속시 CSS, JS가 적용이 되지 않는 문제를 직면할 것이다.이런 문제는 아래의 코드를 @Configuration, @EnableWebSecurity가 적용된 클래스에 삽입해주면 간단하게 적용이 되는 것을 확인할 수 있다.@Beanpublic WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring() .requestMatchers(PathRequest.toStaticResources().atCommonLocations());}위 구문만 적용해주면 Static 폴더 내의 모든 것을 시큐리티 필터에서 무시한채 가져올 수 있다.그리고 하나씩 접속권한을 부여하는 것보.. 2024. 6. 15. [Spring Boot] Spring Security를 이용한 JWT CORS Filter 로그인 커스터마이징하기 [Spring Boot] Spring Security를 이용한 JWT CORS필터체이닝기본적인 JWT 토큰 발행방법 [Spring Boot] JWT HMAC 암호화[Spring Boot] JWT[Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩hong-study.tistory.com이전 포스팅에서는 Spring Security 환경에서 CORS Filter를 적용하는 것에 대해서 공부하였습니다.이번 포스팅은 CORS Filter를 이용해 로그인 환경을 커스터마이징해보려고 합니다.Security 설정 파일 @Configuration@EnableWebSecuritypublic class SecurityCon.. 2024. 5. 30. [Spring Boot] Spring Security를 이용한 JWT CORS필터체이닝 기본적인 JWT 토큰 발행방법 [Spring Boot] JWT HMAC 암호화[Spring Boot] JWT[Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리hong-study.tistory.com이전 포스팅에서는 JWT HMAC 암호화 방식에 대해 공부를 하였습니다.지금은 조금 더 어려운 개념은 Spring Security를 이용한 JWT Cors 필터체이닝 방식에 대해서 공부해보고자 합니다.CORS 필터체이닝 방식을 적용하기에 앞서 CORS란 무엇인지에 대한 이해가 중요하다.CORS ( Cross-Origin Resource Sharing )웹 브라우.. 2024. 5. 30. [Spring Boot] JWT HMAC 암호화 [Spring Boot] JWT[Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리티는 방대한hong-study.tistory.com이전 글에서 JWT는 무엇이고 왜 사용하는지에 대해 설명하였다.이번에는 JWT를 직접 구현해봄으로써, 어떤 동작원리를 가지고 있는지 이해해보려고 한다.JAVA -JWT 라이브러리 추가 build.gradle implementation 'com.auth0:java-jwt:4.4.0'build.gradle에 아래와 같이 라이브러리를 추가한다.다른 버전이나 다른 개발 환경에서 사용하고 싶다면 아래에서 jwt를 검색해서 사용하면 된다.. 2024. 5. 30. 이전 1 2 3 4 ··· 9 다음 반응형