목록JAVA (23)
개발 기록
https://stackoverflow.com/questions/51014320/spring-type-definition-error-when-posting-a-new-object-using-a-rest-\service
https://madplay.github.io/post/java-upcasting-and-downcasting 자바 업캐스팅 다운캐스팅 자바에서 업캐스팅(Upcasting)과 다운캐스팅(Downcasting)이란 무엇일까? madplay.github.io https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%97%85%EC%BA%90%EC%8A%A4%ED%8C%85-%EB%8B%A4%EC%9A%B4%EC%BA%90%EC%8A%A4%ED%8C%85-%ED%95%9C%EB%B0%A9-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0 [JAVA] ☕ 업캐스팅 & 다운캐스팅 - 완벽 이해하기 자바의 참조형 캐스팅 하나의 데이터 타입을 다른 타입으로 바꾸는 것을..
https://www.tcpschool.com/java/java_inheritance_super 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com https://kadosholy.tistory.com/93 [Java] 자바 - super 및 super( )의 용도와 사용방법 자바 - super 및 super( )의 용도와 사용방법 자바에서 상속하여 클래스를 사용할 경우 부모 클래스에 접근하기 위해서 사용되는 super와 super( )에 대해서 알아보도록 하겠습니다. 1. super 및 super( )의 kadosholy.tistory.com
기록은 어렵다.. 간단하게라도 정리 강의 수강 목적 : 실무에서는 아무래도 기존 코드에 맞춰 개발을 하다보니 뭐가뭔지 생각하는게 덜 해졌다고 느껴졌다. 예외처리도 그 중 하나인데 다른 메소드에서 쓰이는 걸 그냥 그대로 가져와 쓰다가 어느 날은 알고는 써야지 하고 생각이 들었다. 그래서 예외처리에 관한 강의를 찾다가 수강 ! - 강의는 JDBC부터 데이터 소스 트랜젝션 예외 많지만 나는 예외처리때문에 들었으므로 정리도 그 부분만 하겠다! - 예외 기본 문법이라는 내용도 나는 모르고 있어서 듣길 잘 했다고 생각이 들었다. 내용 정리 예외 계층 체크 예외와 언체크 예외 차이는 컴파일러의 체크 유무 + 컴파일러란 - 소스를 컴퓨터 언어인 기계어로 번역하는 작업(컴파일)을 하는 프로그램 + 빌드 = 컴파일 + 링..
영속성 컨텍스트 -엔티티를 영구 저장하는 환경 엔티티의 생명주기 -비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 -영속(managed) : 영속성 컨텍스트에 관리되는 상태 -준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 -삭제(removed) : 삭제된 상태 엔티티 조회, 1차 캐시 em.persist(member); 영속상태가 되고 1차 캐시에 저장됨 ( 영속성 컨텍스트 안에 1차 캐시 존재 ) --> 데이터 조회시 db보다 먼저 1차 캐시에서 데이터를 찾음 --> 1차 캐시에 없으면 db에서 조회후 1차 캐시에도 저장하고 그것을 반환 영속 엔티티의 동일성 보장 -1차 캐시로 반복 가능한 읽기 등급의 트랜잭션 격리 수준을 데이터베이스가 ..
CRUD 코드가 다 만들어져 있어서 불러쓰면 되기 때문에 편하고 생산성이 높음 저장 - jpa.persist(member) 조회 - Member member - jpa.find(memberId) 수정 - member.setName("이름") 삭제 - jpa.remove(member) 필드 변경시 SQL은 JPA가 처리하기 때문에 필드만 추가하면 됨 유지보수하기 좋음 패러다임의 불일치 해결 객체지향 언어와 관계형 데이터베이스 사이의 불일치를 해결, 연결해줌 성능 최적화 기능 같은 트랜잭션 안에서는 같은 엔티티를 반환 (1차 캐시와 동일성 보장) 트랜잭션이 짧기때문에 크게 성능 향상은 안됨 커밋할 때 까지 INSERT SQL을 모은 후 커밋하는 순간 같이 보낸다 지연 로딩 - 객체가 실제로 사용될 때 로딩 ..
스코프-빈이 존재할 수 있는 범위 스코프 종류 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입, 초기화까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 ( 종료 메서드 호출 x ) 스프링 컨테이너에 요청할때 마다 새로 생성 ( 빈을 조회할 때 생성되고 초기화 메서드도 실행 ) 웹 관련 스코프( 웹 환경에서만 동작 / 스코프의 종료 시점까지 관리 ) request : 웹 요청이 들어오고 나갈때 까지 유지 session : 웹 세션이 생성되고 종료될 때까지 유지 application : 웹의 서블릿 컨텍스와 같은 범위로 유지 프로토타입과 싱글톤 함께 사용시 발생하는 문제 - 싱글톤 빈..
스프링 빈의 이벤트 라이프 사이클 (싱글톤의 경우) 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용(애플리케이션 동작) -> 소멸전 콜백 -> 스프링 종료 *스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 기능 제공 *방법은 여러가지이지만 애노테이션을 주로 사용 //의존관계 주입 완료 후 실행 메소드 @PostConstruct public void init() { connect(); call("초기화 연결 메세지"); } //컨테이너 종료시 호출 @PreDestroy public void close() { disconnect(); } * 객체 생성시 생성자에서 처리하면 되지 않을까?! ( 의존관계 주입을 다 생성자 주입..