본문 바로가기

분류 전체보기

(48)
[Trouble Shooting] Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 11 오류 해결 "이 구성 요소는 컴파일 시간 동안 사용할 구성 요소를 선언하고 Java 17과 호환되며 소비자는 실행 시간 동안 사용할 구성 요소가 필요하므로 호환되지 않음, 현재는 Java 11과 호환됨" Spring Boot 3.0 부터는 Java 17부터 지원된다. Gradle의 JVM 에서 build되는 자바의 버전을 17 이상으로 수정해주면 된다. 그리고 project의 SDK 설정을 바꿔준다. 이 이후에 refresh 해주면 정상적으로 build 된다
[OOP, Java] 다형성 & 상속 & 객체 변수 형변환 그림으로 정리 본 포스팅은 자바의 정석과 스프링 입문을 위한 자바 객체 지향의 원리와 이해를 참고하여 만들어졌습니다. 다형성 OOP에서 다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미한다. 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현해였다. 구체적으로 말하면, 조상 클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다 public class Driver { public static void main(String[] args) { Penguin pororo = new Penguin(); pororo.name = "뽀로로"; pororo.habitat = "남극"; pororo.showName(); pororo.showName("초보..
스프링 입문을 위한 자바 객체 지향의 원리와 이해 책 요약 001. 사람을 사랑한 기술 기계어에서 객체 지향 프로그래밍 언어로 기계어 코드는 CPU에 따라 다름 기계어 명령을 일상 용어로 표현하고 이걸 기계가 알 수 있는 기계어로 번역하게 하는 것 -> 즉 매칭 코드표(번역 소프트웨어) : 어셈블리 CPU별로 기계어 다르므로 어셈블리어도 다름 C 언어의 등장 싱글 소스 : 소스파일을 단 하나 만들고 각 기계에 맞는 컴파일러로 컴파일만 하면 각 기계에 맞는 목적 파일(기계어)이 만들어짐 번역 프로그램이 어셈블러가 아니라 컴파일러임 자바 - 진정한 객체 지향 언어 객체 지향 언어의 중심에는 클래스(class)가 있음. 자바에서는 클래스를 떠나 존재할 수 잇는 것은 아무것도 없음. 자바 vs. C 컴파일러를 기종별로 준비해두지 않아도 됨 자바로 구현한 소스는 다른 기..
[JPA] 영속성 컨텍스트와 변경 감지(dirty checking) vs. 병합(merge) EntityManager EntityManagerFactory는 여러 스레드에서 동시에 접근해도 안전하지만, 생성 비용이 크다. 따라서 EntityManagerFactory에서는 "요청이 올 때마다" 생성 비용이 거의 없는 EntityManager를 생성한다. EntityManager는 Thread Safe하지 않아, 여러 스레드가 동시에 접근하면 동시성 문제가 발생한다. 따라서 요청(스레드)별로 한 개 씩 할당해준다. 이때 만들어진 EntityManager는 내부적으로 DatabaseConnection을 사용해서 DB를 사용한다. 영속성 컨텍스트 - 엔티티를 영구 저장하는 환경 - 영속성 컨텍스트는 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 논리적 개념 - EntityManager를 통해서 영..
[Spring Batch] 배치(Batch)란? 배치(Batch)란? 배치 뜻 사전적 의미 1. [명사] (일괄적으로 처리되는) 집단[무리]. 2. [명사] 한 회분(한 번에 만들어 내는 음식기계 등의 양) 3. [동사] (일괄 처리를 위해) 함께 묶다. 업무에서의 의미 1. 업무 혹은 IT에서 배치라함은 우리말로 일괄 처리(batch processing)의 batch를 말합니다. 배치는 사용자의 개입 없이 실행을 스케줄링할 수 있는 작업(job)을 의미하며. 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식입니다. 2. 급여명세서나 성적처리, 금융업무 등에서 유사한 업무를 한번에 일괄 처리하도록하여 시간과 비용을 절감하는데 많이 사용합니다. 배치 이용의 장점 1. 배치 프로그램을 이용하면 사용자가 적을때 컴퓨터 자원을 이용할 수 있습니다...
[JPA] JPA 정리 의문점 어떤 엔티티는 왜 @JoinColumn 어노테이션을 추가해주나? 그리고 어떤 엔테티는 왜 @OneToMany와 같은 어노테이션 뒤에 mappedBy라는 속성을 추가해주는가? 연관관계의 주인이라는 개념 때문에 그러한가? [JPA] @JoinColumn 확실히 알고가기!!! 안녕하세요 오늘은 JPA 주제로 글을 써보도록 하겠습니다. 테이블들간 연관관계를 설정해 줄때 일대다(1:N) 관계일때 @JoinColumn 어노테이션을 사용해서 해당 컬럼의 이름을 설정해줍니다.... 근데!! boomrabbit.tistory.com https://ch4njun.tistory.com/274 [Spring Boot] JPA 에서의 연관관계 JPA 에서 가장 중요한 개념이라고 하면 연관관계 매핑과 영속성 컨텍스트가 있..
[Concept] @Controller vs. @RestController, JSON, Serialize, URL, URI, REST API URI vs. URL URI 인터넷에 있는 자원을 나타내는 유일한 식별자 URL 주소이다. 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 부분집합이다. http://www.a.com/users/143 // 전체가 URI // URL은 /users 까지 REST API 웹 서비스에서 클라이언트에 데이터와 기능의 집합을 전송하기 위해 제공되는 Web API가 REST 구조 스타일에 적합하게 설계된 경우 REST API라고 한다. REST 구조 스타일은 웹 서비스 API 설계에 많이 적용되고 있다. REST 로이 필팅이 웹 확장성의 주요 제약 조건들을 정리한 "웹의 구조적 스타일"에 대해 자신의 박사학위 논문에서 "REST (Representation..
[Spring Boot for Web Development] 강의 내용 정리 Spring Boot 애플리케이션 개발 및 실행 순서 Spring initializr 를 활용한 Spring Boot 프로젝트 생성 및 다운로드 다운로드 한 Spring Boot 프로젝트를 IntelliJ에서 Import 추가 코드 개발 Spring Boot 애플리케이션 실행 웹 브라우저 또는 Postman을 활용하여 테스트 Spring Initializr Spring Boot 프로젝트를 쉽게 구성할 수 있게 지원하는 사이트 https://start.spring.io/ IP& PORT IP 서버의 주소 request를 요청하는 주소 인터넷에 연결된 기기가 가질 수 있는 네트워크 상의 주소 IP 주소 정보로 원격에 있는 자원 (웹 페이지, 이미지 등)을 요청 가능 IPv4 vs. IPv6 더 많은 기기에 ..