본문 바로가기

이론70

생성자 Constructor 📌 생성자 Constructor 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드', 인스턴스 변수의 초기화 작업에 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 📍 생성자의 조건 및 특징 일반적으로 어디서든 클래스에 대한 객체 생성이 가능하도록 'public'으로 지정. 객체를 생성할 때 new 키워드와 함께 노출 (객체 생성 외에는 호출할 수 없음) 인스턴스를 초기화 하는 코드가 구현됨 (주로 멤버 변수 초기화) 반환 값이 없음(초기화를 목적으로 하기 때문에), 상속되지 않음. 생성자는 클래스 이름과 동일. 📍 생성자 생성 과정먼저 연산자 new에 의해서 메모리(heap)에 해당 클래스의 인스턴스가 생성된다. 그 후, 생성자가 호출되어 수행되고 연산자 new의 결과로 생.. 2021. 7. 19.
객체 지향 언어의 메모리 구조와 특징 OOP Memory 📌 객체 지향 언어의 메모리 구조와 특징 OOP Memory 참고 : 객제 지향 언어 OOP 📍 정적 메모리와 동적 메모리 정적 메모리 : 이미 메모리 공간의 크기가 정해져있는 고정적 메모리 영역이다. 프로그램 구동 내내 사용할 수 있어서 하나의 정보를 여러 대상이 공유할 목적일 때 사용한다. static이 여기에 해당된다. 동적 메모리 : 유동적으로 메모리 영역에 변화를 줄 수 있으며, 프로그램 실행시 실행되는 메모리 공간이다. HEAP 메모리 쪽에 변수 방을 만들더라도 그 공간은 변수명을 사용하지 못하는 공간이다. 즉, 이름으로 접급하는 것이 아니라 그 변수방이 있는 주소로만 접근할 수 있다. 따로 삭제에 대한 코드가 없으며 garbage collection에서 관리한다. HEAP, STACK 메모리.. 2021. 7. 15.
객체 지향 프로그래밍 Object-Oriented Programming(OOP)이란 📌 객체 지향 프로그래밍 Object-Oriented Programming(OOP) 참고 : 객제 지향 언어의 메모리 구조와 특징 📍 객체란 현실에 존재하는 독립적이면서 하나로 취급되는 사물이나 개념을 말한다. 객체 지향 언어에서 객체의 개념은 클래스의 의해 메모리에 할당된 결과물(Object)이다. 📍 객체의 할당 new연산자와 생성자를 사용하여 객체를 생성하면, heap 메모리 공간에 서로 다른 자료형의 데이터가 연속으로 나열 할당된 객체 공간이 만들어진다.이것을 인스턴스Instance 라고 한다. 🚩 new 의 역할1. 자유 메모리 공간 heap에 객체(인스턴스)를 만든다. 2. 생성자를 통해서 초기화 처리한다. (기본 생성자면 준비된 기본 값으로 초기값 기록함) => 생성된 인스턴스의 heap 주.. 2021. 7. 15.
[Spring - JPA] org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "000" not found; SQL statement 간단한 TEST라서 H2로 데이터 베이스를 끌어와서 TEST를 사용하고 있는데 TABLE을 발견하지 못한다는 ERROR가 발생했다. 분명 person 클래스에 @Entity를 지정해두었는데 계속 table을 못찾았다. data.sql을 추가하기 전까지는 분명 잘 돌아갔던 test라 당황했다. 구글링해서 이런저런 dependency와 직접 db연동을 해봤는데 실패였다. 원인은 다른 곳에 있었다.... Spring Boot 2.5 Release Notes spring-projects/spring-boot Spring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub. github.com "SQ.. 2021. 7. 14.
[Spring Boot 템플릿 엔진] 타임리프(Thymeleaf) 공통 템플릿 재사용 반복적으로 사용되는 템플릿을 공통사항으로 만들어 재사용하는 방법이 있다. JSP에서는 include와 똑같은 원리라고 보면된다. 공통 템플릿으로 재사용하는 2가지 방법 1. 템플릿 프래그먼트 : 여러 템플릿을 작성할 때, 여러 템플릿에서 같은 내용이 사용되는 경우가 많다. 이러한 경우에는 그러한 공통적인 내용을 별도 파일로 추출하고 싶을 때 프래그먼트를 사용한다. 2.템플릿 레이아웃 : 여러 템플릿에서 같은 디자인 레이아웃을 적용하는 일반적으로 공통적인 레이아웃을 정의하고 공유하게 된다. 이럴 때 유효한 라이브러리로 타임리프 레이아웃 다이얼렉트가 있다. 1. 템플릿 프래그먼트 fragment ; 부서진 조각 템플릿의 일부를 분활해서 별도 파일로 꺼낼 수 있다. 헤더, 푸터, 메뉴가 프래그먼트가 자주 이용.. 2021. 7. 9.
[Spring Boot 템플릿 엔진] 타임리프(Thymeleaf) / 표현식 / 출력제어 https://www.thymeleaf.org/ 1. 타임리프 ? 스프링 부트를 비롯한 프레임워크에서 JSP 대신 사용하는 '뷰'쪽 템플릿 엔진이다. 쉽게 말하면 템플릿 엔진이라는 게 html 등의 뷰를 만들어주는 앤데, 그 템플릿 엔진 중 하나가 타임리프다. 템플릿 엔진 뼈대가 되는 문서(템플릿)에 가변 데이터를 삽입함으로써 동적으로 문서를 생성하는 구조다. 2. 타임리프 템플릿 타임리프는 XHTML이나 HTML5 등으로 작성된 템플릿을 DOM(Document Object Model)으로 변환하고 처리하는 구조로 돼 있으며, '처리 대상의 DOM 노드'와 'DOM 노드에 적용하는 처리'를 th 네임스페이스 속성을 사용해 지정한다. 3. 타임리프와 스프링의 연계 타임리프와 스프링 프레임워크를 연계할 때는.. 2021. 7. 9.