본문 바로가기

개발 이론59

[JPA] API 개발시 주의사항 및 성능 최적화 API개발시 주의사항 요청값으로 엔티티를 직접 받지 말자 문제점 - 엔티티에 프레젠테이션 계층을 위한 로직이 추가된다 - 실무에서 회원 엔티티를 위한 다양한 API가 만들어지는데 각각의 API를 위한 모든 요청 요구사항을 담기 어렵다 - 엔티티가 변경되면 API스펙이 변한다 따라서 별도의 DTO로 파라미터를 받는다 @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; @PostMapping("/api/v2/members") public CreateMemberResponse saveMemeberV2(@RequestBody @Valid CreateMe.. 2023. 11. 2.
[Spring Security] UserDetailService, UserDetails UserDetailsService : 사용자이름으로 사용자를 검색 UserDetailsManager : 대부분의 애플리케이션에 필요한 사용자 추가, 수정, 삭제 작업 UserDetailService는 UserDetails 계약을 이용해 사용자를 기술 UserDetails는 GrantedAuthority 인터페이스를 이용해 권한을 하나이상 가지게 함 > UserDetails UserDetails 계약은 스프링 시큐리티가 이해하는 방식으로 사용자를 나타낸 것이다 public interface UserDetails extends Serializable{ //사용자 자격증명 반환 메서드 String getUserName(); String getPassword(); //앱 사용자가 수행할 수 있는 작업을 인스턴스.. 2023. 11. 1.
Java 기본 헷갈리는 문법(3) 다형성 -참조변수가 사용할 수 있는 멤버의 갯수는 인스턴스의 멤버갯수보다 같거나 적어야한다. -참조변수의 형변화 ---> 참조하고 있는 인스턴스에서 사용할 수 있는 멤버의 범위(개수) 조절 Car car = null; FireEngine fe = new FireEngine(); FireEngine fe2= null; car=fe; //업캐스팅 fe2=(FireEngine)car; //형변환 생략불가, 다운캐스팅 -참조변수와 인스턴스 연결 --> 멤버변수가 조상클래스와 자손클래스에 중복정의된 경우, 조상타입의 참조변수를 사용했을때는 조상클래스의 멤버변수 이용 / 자손타입의 참조변수 사용했을 때는 자손클래스의 멤버변수 이용 ---> 메서드는 인스턴스타입에 따라 추상클래스 -추상메서드 + 생성자 + 멤버변수 .. 2023. 3. 23.
Java 기본 헷갈리는 문법(2) 메소드 체이닝 -메소드를 고리마냥 줄줄이 엵어서 메서드를 계속해서 사용하게끔 class People { private int height; private int weight; public int getHeight() { return height; } public void setHeight(int height) { this.height = height; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } } class ChainingPeople{ private int height; private int weight; public int getHeight() { return .. 2023. 3. 22.
Java 기본 헷갈리는 문법(1) System.arraycopy System.arraycopy(oldstrArray,0,newStrArray,0,oldStrArray.length) ---> oldStrArray 인덱스 0에서부터 newStrArray 0에서부터 oldStrArray.length만큼 복사 return void run() { while(true) { if(gas>0) { System.out.println(gas); gas=1; }else { System.out.println(gas); return; } } while 뒤에 또 다른 메소드가 있다면 break;를 넣어야함 (return는 메소드 자체를 종료시킴) 정적메소드 인스턴스필드 + 인스턴스 메소드 + this(객체자신참조)키워드 사용불가 if 사용하고 싶다면 객체생성후 .. 2023. 3. 22.
728x90