분류 전체보기

    [DB] drop, Delete, truncate 에 대해

    drop, delete, truncate 에 대해 drop 테이블 자체를 삭제하는 명령어다. 테이블 자체가 모두 지워지고 생성되어 있던 인덱스도 삭제된다. 테이블이 사용했던 Storage는 모두 Release 처리된다. 오라클 10g 부터는 테이블이 삭제되는 것이 아니라 휴지통 개념처럼 잠시 삭제되고, 테이블 이름이 BIN$...로 변경된다. drop table [table_name] delete 데이터만 삭제되고 테이블 용량은 줄어 들지 않는다. 커밋이전에는 롤백이 가능하다. 전체 또는 일부 데이터 삭제가 가능하다. 데이터를 모두 Delete해도 사용했던 Storage는 Release 처리되지 않는다. truncate 테이블을 최초 생성된 초기상태로 만든다. 용량이 줄어들고 인덱스 등도 모두 삭제된다...

    Spring Configuration 기초 정리

    Spring Configuration 기초 정리 @Configuration과 @Bean class JavaConfigTest { @Test void javaConfig() { ApplicationContext context = new AnnotationConfigApplicationContext(HelloApplication.class); String[] beanDefinitionNames = context.getBeanDefinitionNames(); System.out.println(Arrays.toString(beanDefinitionNames)); AuthService authService = context.getBean(AuthService.class); assertThat(authService..

    [Java] 템플릿 메서드 패턴, 팩토리 메서드 패턴, 추상 팩토리 패턴

    템플릿 메서드 패턴, 팩토리 메서드 패턴, 추상 팩토리 패턴 템플릿 메서드 패턴 public abstract class WoowaTechCourse { public void dailyRoutine() { goWork(); haveClass(); study(); leaveWork(); } public void goWork() { System.out.println("출근"); } public void haveClass() { WoowaClass woowaClass = new WoowaClassSelector().brownClass(); woowaClass.classOwner(); } public void leaveWork() { System.out.println("퇴근"); } public abstract ..

    Spring Auth 기초 정리

    Spring Auth 기초 정리 세션이란? 세션이란 클라이언트 별로 서버에 저장되는 정보다. 웹 클라이언트가 서버측에 요청을 보내게 되면 서버는 클라이언트를 식별하는 session id를 생성한다. 서버는 session id를 이용해서 key와 value를 이용한 저장소인 HttpSession을 생성한다. 서버는 session id를 저장하고 있는 쿠키를 생성하여 클라이언트에 전송한다. 클라이언트는 서버측에 요청을 보낼 때 session id를 가지고 있는 쿠키를 전송한다. 서버는 쿠키에 있는 session id를 이용해서 그 전 요청에서 생성한 HttpSession을 찾고 사용한다. 세션을 얻기 위해서는 request로 부터 getSession() 메서드를 호출해야 하지만, 스프링은 알아서 얻어와주기 ..

    Spring MVC Config 기초 정리

    Spring MVC Config 기초 정리 addViewControllers /** * 사용자가 "/"로 요청을 보냈을 때 hello.html이 응답되어야 함 * * WebMvcConfiguration의 addViewControllers 메서드로 설정하기 */ @Test void addViewControllers() { // when ExtractableResponse response = RestAssured .given().log().all() .when().get("/") .then().log().all().extract(); // then Assertions.assertThat(response.statusCode()).isEqualTo(HttpStatus.OK.value()); } @Configur..

    Spring CORE 기초 정리

    Spring CORE 기초 정리 @Component public class LineDao { } @Component가 붙으면 해당 클래스를 빈 등록해준다는 뜻이다. @Controller, @Service, @Repository 어노테이션 내부에는 모두 @Component를 포함하고 있다. @ComponentScan은 @Component가 붙은 클래스들을 읽어들여 빈 등록을 해준다. 보통 main 함수를 가지고 있는 클래스 위에 @SpringBootApplication를 달고있는데, 해당 어노테이션 내부에 @ComponentScan이 존재한다. 현재 디렉토리 위치에서부터 아래로 내려가면서 스캔을 하기 때문에 보통 @ComponentScan의 위치가 최상단에 존재하는 이유가 바로 이것이다. 의존관계 주입 방..

    Spring JDBC 기초 사용법 정리

    Spring JDBC 기초 사용법 정리 NamedParameterJdbcTemplate @Repository public class NamedParamDAO { private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public NamedParamDAO(NamedParameterJdbcTemplate namedParameterJdbcTemplate) { this.namedParameterJdbcTemplate = namedParameterJdbcTemplate; } /** * MapSqlParameterSource * public T queryForObject(String sql, SqlParameterSource paramSource, Class..

    Spring MVC 기초 정리

    Spring MVC 기초 정리 매핑 요청 @RestController @RequestMapping("/http-method") public class HttpMethodController { @PostMapping("/users") public ResponseEntity createUser(@RequestBody User user) { Long id = 1L; return ResponseEntity.created(URI.create("/users/" + id)).build(); } @GetMapping("/users") public ResponseEntity showUser() { List users = Arrays.asList( new User("이름", "email"), new User("이름", "..