본문 바로가기

분류 전체보기270

Enum 클래스 작성방법 예를들어 상품 주문에 대한 상태값을 관리할 때, 여태의 나였으면 if(해당경우){ status = "상태값"; } 으로 해당 상태를 하드코딩의 형태로 바꿔주었다. 하지만 이제 ENUM 클래스를 활용하는 방법을 배웠으므로 앞으로는 이렇게 작성하도록 하자. private String status; 위처럼 하드코딩의 형태였다면 해당 변수 타입은 String 형태이다. //등록됨, 해제됨, 대기중의 상태값을 가지는 enum 클래스를 작성해보자. @Enumerated(EnumType.STRING) private UserStatus status; // REGISTERED / UNREGISTERED Enum 값을 가지는 필드에 @Enumerated 어노테이션을 붙여준다. 이 어노테이션은 인자로 EnumType.STR.. 2019. 12. 8.
Java 람다식 Stream - (BufferStream의 그 Stream 아님) API 를 구현하는 인터넷강의를 듣고있는데, 서비스 부분을 람다식으로 작성하셨다. 아직 람알못이라 어떻게 쓰는지 정도는 알고가야 할 것 같아서 정리하려한다. Stream은 자바 8부터 추가되었다. 컬렉션, 배열등의 저장 요소를 하나씩 참조하며 함수형 인터페이스(람다식)를 반복적으로 처리할 수 있도록 해주는 기능이다. 기존 방식 List names = Arrays.asList("test", "test1","test2"); long count = 0; for(String name : names){ if(name.contains("es")){ count++; } } System.out.println("Count : " + count); //3 람다식을 이용한 방식 count = names.stream().fi.. 2019. 12. 7.
Springboot JPA CRUD 완전정복 (with @Test) 우선 CRUD를 작성하기 전에 Entity 클래스와 , Repository 인터페이스는 작성이 되어있다는 가정하에 진행한다. Repository 인터페이스 public interface 이름 extends JpaRepository 스프링 부트에서는 Repositoy 인터페이스에서 JpaRepository를 상속 받게되면 Entity 클래스의 기본적인 CRUD가 가능하다. Test 코드로 CRUD를 확인해보자 Create @Autowired private UserRepository userRepository; @Test public void create(){ User user = new User(); user.setAccount("TestUser01"); user.setEmail("TestUser01@gm.. 2019. 11. 14.
JPA repository.save is Null (NullPointerException) - feat. @RunWith & @SpringBootTest & @DataJpaTest JPA로 save 를 작성해보던 도중 @Autowired private UserRepository userRepository; @Test public void create(){ System.out.println(userRepository); User user = new User(); user.setAccount("TestUser01"); user.setEmail("TestUser01@gmail.com"); user.setPhoneNumber("010-1111-1111"); user.setCreatedAt(LocalDateTime.now()); user.setCreatedBy("admin"); System.out.println(user); User newUser = userRepository.save(us.. 2019. 11. 13.
Oracle SQL Trace 확인하는 방법 Sql 문에 인덱스를 추가하고, 전 후 속도차이를 비교하기 위해 SQL Trace를 확인해보려고 했다. sqlplus에서 sysdba 계정으로 해야한다 SELECT P.SPID SERVER FROM V$PROCESS P, V$SESSION S WHERE P.ADDR = S.PADDR AND S.AUDSID = USERENV('SESSIONID'); 우선 위의 쿼리를 사용해서 SPID를 확인해야한다. 나중에 trc 파일을 떨구면 SPID 번호로 생성이된다. 어차피 최신 파일을 보면 되기 때문에 위 과정은 꼭 필요하진 않는 것 같다. alter session set events '10046 trace name context forever, level 1'; 트레이스의 레벨을 설정할 수 있다. 레벨이 높을 수.. 2019. 10. 30.
스프링부트 Rest API Post 방식 호출하기 - (2) (1)탄 포스팅에서 작성한 소스코드를 살짝 바꿔봤다. 기존 소스 코드 파일을 한 줄씩 읽은 리스트에 한 줄씩 저장 리스트에서 user_id를 한 개씩 꺼내서 post 방식으로 전송 개선 소스 코드 파일을 한 번에 읽어서 리스트에 저장 추가, 삭제에 좋은 큐에 담아 100개씩 꺼내면서 5초 휴식 데이터가 엄청 많은 경우 100줄 정도 씩 끊어서 큐에 저장하여 api 호출도 100개씩 5초 간격으로 하려고 했으나, api가 그렇게 구현되어 있지않아서 하지 못했다. api를 마음대로 수정할 수 있는 권한이 있었다면 수정도 해봤을텐데 아쉽다. package com.fakesinsa.fakesinsaboot; import jdk.nashorn.internal.parser.JSONParser; import org... 2019. 10. 24.