Spring(8)
-
[Spring/Springboot] 제어의 역전 IoC(Inversion of Control)
제어의 역전 IoC(Inversion of Control)public class AppConfig{ public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } public OrderService orderService(){ return new OrderServiceImpl(memberRepository(), discountPolicy()); } public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } public DiscountPolicy discountPolicy(){ return new RateDi..
2024.12.15 -
[Spring/SpringBoot] 의존 관계 주입 DI(Dependency Injection)
의존 관계 주입 애플리케이션 실행 시점(런타임)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것을 의존관계 주입이라고 함객체 인스턴스를 생성하고, 그 참조값을 전달해서 연결함의존 관계 주입의 장점클라이언트 코드를 변경하지 않고, 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있음정적인 클래스 의존관계를 변경하지 않고, 동적인 객체 인스턴스 의존관계를 쉽게 변경할 수 있음(ex) AppConfig의 의존관계 인스턴스 이름나 변경해주면됨 다른 코드/클래스 건드릴 필요 없음의존 관계 주입 예시 코드**import hello.core.discount.DiscountPolicy;import hello.core.member.Member;import..
2024.12.15 -
[게시판 프로젝트] 깃헙 릴리즈하기
깃헙에 릴리즈하기 위해서 태그(tag)를 만들어 주어야 합니다.태그 생성해 준 뒤, 생성한 태그를 push 합니다.깃헙 - Code - 태그아이콘 클릭하면, 태그를 확인할 수 있습니다.깃헙 릴리즈하기Code - release - create a new release 클릭Set as a pre-release : 완전히 릴리즈하는 것이 아니라 릴리즈 하기 전에 테스트 용으로 사용하는 것으로, 별도의 색깔과 모양으로 관리됨create a discussion for this release : discussion 쪽 여러가지 내용들을 연동하여 글을 작성할 수 있게 됨 태그를 선택하지 않으면, 'There was an error createing your Release : tag name can't be blan..
2024.09.04 -
[게시판 프로젝트] 소셜 로그인 기능 구현(3) - 카카오로 로그인 하기
회원 정보 서비스 로직 구현 - UserAccountServicesearchUser - 값이 있을 때와 없을 때의 호출자에게 위임하기 위해서 Optional 사용@Transactional(readOnly = true)public Optional searchUser(String username) { return userAccountRepository.findById(username) .map(UserAccountDto::from);} @Transactional(readOnly = true)이 메서드는 읽기 전용 트랜잭션으로 실행됩니다.데이터베이스에 변경을 가하지 않으므로 성능 최적화가 가능하며, 기본적으로 데이터베이스의 플러시 작업이 발생하지 않습니다.Optional search..
2024.08.27 -
[게시판 프로젝트] 게시글 댓글 구현 - ArticleCommentController 코드 뜯어보며, 댓글 기능 프로세스 이해하기
ArticleCommentController댓글 작성 메소드 @PostMapping("/new")public String postNewArticleComment(ArticleCommentRequest articleCommentRequest)@PostMapping("/new")HTTP POST 요청을 처리하며, /comments/new URL과 매핑됩니다. 이 메소드는 새로운 댓글을 작성할 때 호출됩니다.public String postNewArticleComment(ArticleCommentRequest articleCommentRequest)이 메소드는 클라이언트로부터 ArticleCommentRequest 객체를 받아 처리하며, 처리 후 리다이렉트할 URL을 반환합니다.articleCommentSer..
2024.08.26 -
[게시판 프로젝트] 게시판 검색 구현
SearchType enum 클래스ArticleController - 검색관련 SearchType 데이터 ModelMap에 추가 Before@GetMapping//게시글 리스트 페이지 - 정상 호출 public String articles( @RequestParam(required=false)SearchType searchType, @RequestParam(required = false) String searchValue, @PageableDefault(size=10, sort = "createdAt",direction = Sort.Direction.DESC) Pageable pageable, ModelMap map ..
2024.08.26