JAVA

· JAVA/JPA
fetch join이란 SQL 조인 종류 X JPQL에서 성능 최적화를 위해 제공하는 기능 연관된 엔티티나 컬렉션을 SQL 한 번을 통해 조회할 수 있다. 페치 조인 ::= [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로 엔티티 fetch join 회원을 조회하면서 연관된 팀도 함께 조회 SQL을 보면 회원 뿐만 아니라 팀(T.*)도 함께 SELECT -- [JPQL] select m from Member m join fetch m.team -- 실제 나가는 SQL SELECT M.*, T.* FROM MEMBER M INNER JOIN TEAM T ON M.TEAM_ID = T.ID SQL JPQL fetch join 사용하는 이유 String jpql = "select m f..
스프링 부트는 스프링 프레임워크를 기반으로 만들어진 백엔드 프레임 워크이다. 스프링 부트의 동작원리를 이해하기전에 스프링 부트의 다양한 계층, 클래스를 알아보자 레이어 Presentation Layer (프레젠테이션 계층)프레젠테이션 계층은 HTTP 요청을 처리하고 JSON으로 받은 데이터를 객체로 변환하여 요청을 인증하고 비지니스 계층으로 전달한다. 간단히 말해서 뷰, 즉 프론트엔드 부분으로 구성됨 Business Layer (비지니스 계층)비지니스 계층은 모든 비즈니스 로직을 처리하며 서비스 클래스로 구성되어 데이터 엑세스 계층에서 제공하는 서비를 사용합니다. 그리고 권한 부여 및 유효성 검사를 수행합니다. 데이터 엑세스 계층: DAO나 Repository와 같은 데이터 베이스와 직접 접근하는 계층...
요구사항 네이버 로그인과 구글 로그인을 사용하기 때문에 이를 구별 해줄 수 있는 서비스를 구현해야한다. 서비스 구현 @Service @RequiredArgsConstructor public class CustomOAuth2UserService implements OAuth2UserService { } OAuth2UserService 타입을 파라미터로 받고 서비스를 설정하기 때문에 반드시 상속 받아야 한다. 메서드 오버라이딩 @Service @RequiredArgsConstructor public class CustomOAuth2UserService implements OAuth2UserService { @Override public OAuth2User loadUser(OAuth2UserRequest us..
기존 Controller @RequiredArgsConstructor @Controller public class IndexController { private final GamesService gamesService; private final HttpSession httpSession; @GetMapping("/") public String index(Model model){ model.addAttribute("games", gamesService.findAllPaging(0,9)); SessionUser user = (SessionUser) httpSession.getAttribute("user") if (user != null) { model.addAttribute("userName",user.ge..
1. Security 설정 스프링 시큐리티를 사용하는데 쓸 기능들을 명시해준다 @RequiredArgsConstructor // 스프링 시큐리티 설정 활성화 @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { private final CustomOAuth2UserService customOAuth2UserService; protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .headers().frameOptions().disable().disable() .authorizeRequests() //URL 별 ..
TestCode @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT) @Transactional public class GamesApiControllerTest extends TestCase { @Autowired private TestRestTemplate restTemplate; @LocalServerPort private int port; @Test public void testGamesReResponse() { Integer request = 1; String url = "http://localhost:"+port+"/api/appendGames"; //when Re..
ri5
'JAVA' 카테고리의 글 목록 (3 Page)