If today was hard, tomorrow will be easy.

간결하고 의미있는 코딩을 위하여.

GitHub - Inchijeong 바로가기→
728x90
반응형

분류 전체보기 61

[Java] 런타임 데이터 영역(Runtime Data Area)

JVM이 OS위에서 실행되면서 할당받는 메모리 영역이 바로 런타임 데이터 영역(Runtime Data Arae) 입니다. 이 영역은 크게 5가지 조금 세분화하면 6가지 영역으로 나눌 수 있습니다. 스레드 관점 스레드(Thread)마다 하나씩 생성 PC 레지스터(PC Register) JVM 스택(JVM Stack) 네이티브 메서드 스택(Native Method Stack) 모든 스레드가 공유해서 사용 (☆GC의 대상) 힙(Heap) 메서드 영역(Method Area) 각 영역 저장 값 메서드 영역: 클래스, 메서드, 클래스 변수(static), 전역변수 힙 영역: new 연산자를 통해 생성된 객체(인스턴스) 스택 영역: 지역변수, 매개변수, 리턴값, 참조변수 각 영역 역할 PC 레지스터(PC Regist..

Java 2021.04.19

[Java] JVM 동작 원리

Java는 OS에 독립적인 특징을 가지고 있습니다. 어떤 OS든 Java가 설치되어 있다면 실행할 수 있다는 말입니다. 그게 가능한 이유는 JVM(Java Vitual Machine) 덕분입니다. 자바 코드 실행 과정(요약) 소스 코드 작성 컴파일러가 소스코드를 바이트 코드로 변환 (컴파일 타임) 바이트 코드를 클래스 로더에 전달 (이후로는 런타임) 클래스 로더는 바이트 코드를 런타임 데이터 영역(JVM 메모리)에 올림 실행 엔진이 JVM 메모리에 올라온 바이트 코드들을 명령어 단위로 실행 자바 코드 실행 과정(상세) 개발자가 자바 소스(.java) 작성 자바 컴파일러(javac.exe)가 자바 소스(.java)를 바이트 코드(.class)로 바꿔줍니다.(빌드) .class 파일: 컴퓨터가 읽을 수 없고..

Java 2021.04.19

[SpringBoot] Thymeleaf 사용

Spring Boot에 Thymeleaf 템플릿 엔진을 적용해 보겠습니다. Thymeleaf 란? 컨트롤러가 전달하는 데이터를 이용하여 HTML을 꾸밀수 있도록하는 뷰 템플릿(View Template)입니다. Thymeleaf 연동 및 설정 Dependency 추가 Gradle의 경우 build.gradle dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' ... } Maven의 경우 pom.xml ... org.springframework.boot spring-boot-starter-thymeleaf ... src/main/resources/application.properti..

SpringBoot 2021.04.19

[SpringBoot] Spring Data JPA

Spring Boot에서 JAP를 사용해 보겠습니다. JPA 란? JPA(Java Persistence API)는 Java를 이용해서 데이터를 관리(유지)하는 기법을 하나의 스펙으로 정리한 표준입니다. 자세한 것은 여기를 참조하세요. 사전 준비 ※ DataBase 연동 이후 작업을 하겠습니다. 자세한 설명은 여기를 참조하세요. JPA 연동 Dependency 추가 Gradle의 경우 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' } Maven의 경우 pom.xml ... org.springframework.boot spring-boot-starter-data-j..

SpringBoot 2021.02.22

[JPA] JPA(Java Persistence API) 란

JPA에 대해 알아보겠습니다. ORM(Object-Relational Mapping) 이란? ORM은 객체지향과 관계형 데이터베이스를 매핑시킨다는 추상화된 개념입니다. JPA(Java Persistence API) 란? JPA는 Java를 이용해서 데이터를 관리(유지)하는 기법을 하나의 스펙으로 정리한 표준 JPA를 이용하면 다양한 데이터베이스에 종속적인 SQL문 없이 개발 가능 쉽게 말해 JAP는 ORM을 JAVA 언어에서 구현하기 위한 스펙 엔티티(Entity), 엔티티 매니저(EntityManager) 엔티티란? 데이터베이스상에서 관리하는 대상. '상품', '회사', '직원' 등을 예로 들 수 있습니다. JAP에서 '하나의 엔티티 타입을 생성한다' 라는 의미는 '하나의 클래스'를 작성한다는 의미입니..

JPA 2021.02.22

[SpringBoot] DataBase 연동

Spring Boot에 DataBase를 연동해 보겠습니다. 사전 준비 ※ Spring Starter Project를 만들어주세요. 자세한 설명은 여기를 참조하세요. ※ 사전에 dependency을 추가할 수 있습니다. ※ MariaDB에 다음과 같이 Database, User, Password, Privileges가 선행되어야 합니다. 자세한것은 Database, User 추가 - Privileges 부여를 참조하세요. - 값 Database todo User todo_usr password todo_pw Connection Pool 란 Pool에 Connection을 미리 만들어 두고 데이터베이스 접근시 Pool에 남아 있는 것 중 하나를 사용한 뒤 반환하는 기법입니다. DataSource 란 Jav..

SpringBoot 2021.02.20

[SpringBoot] 프로젝트 구조

Spring Boot 프로젝트 구조에 대해 알아보겠습니다. 프로젝트 구조(Project Structure) 프로젝트를 생성하면 기본적으로 다음과 같은 구조로 만들어집니다. (Eclipse에서 Spring Starter Project로 Maven 사용) 구조 설명 src/main/java: 프로젝트에서 사용하는 class, interface 파일을 모아둔 디렉토리 DemoApplication.java SpringApplication.run: 웹 애플리케이션을 실행하는 역할 @SpringBootApplication: 다음 세 가지 어노테이션으로 구성 @EnableAutoConfiguration: 스프링 부트 개발에 필요한 몇 가지 필수적인 설정들이 자동으로 완료되도록 도와줌 @ComponentScan: 자동..

SpringBoot 2021.02.20

[SpringBoot] 프로젝트 생성 및 실행

Spring Boot 프로젝트를 생성 및 실행 방법에 대해 알아보겠습니다. 프로젝트 생성 in Spring initializr https://start.spring.io/ 에 접속 환경 선택 및 입력 Project: 어떤 빌드 관리 도구를 이용한 프로젝트인지 선택 Language: 사용할 언어 Spring Boot: 프로젝트 버전 Group: 사용할 그룹. 일반적으로 도메인 Artifact: 산출물 이름. 일반적으로 프로젝트명 Name: 프로젝트 이름 Description: 프로젝트 설명 Package Name: 초기 소스들이 만들어질 기본 패키지명 Packaging: 패키징 방법 Java: 사용할 Java 버전 GENERATE IDE에서 실행시 압출 풀고 Import해서 사용 프로젝트 생성 in Ecl..

SpringBoot 2021.02.20

[SpringBoot] 스프링 부트(Spring Boot) 란

스프링 부트(Spring Boot)에 대해 알아보겠습니다. 스프링 부트란? 아래는 spring.io에 나와 있는 Spring에서 할 수 있는 것들입니다. 단독으로 스프링 어플리케이션을 실행할 수 있게 해주는 스프링 프로젝트입니다. 또한, 스프링을 쉽게 사용할 수 있도록 설정들이 미리 되어있습니다. 그렇기 때문에 쉽고 빠른 개발이 가능합니다. 스프링부트 특징 단독으로 실행이 가능한 스프링 애플리케이션을 생성함 Tomcat, Jetty, Undertow 를 내장 기본설정이 되어있는 starter 컴포넌트를 제공 가능한 자동으로 설정되어 있음 상용화에 필요한 통계, 상태 체크, 외부 설정 등을 제공 설정을 위한 XML 코드를 생성하거나 요구하지 않음 출처 https://noahlogs.tistory.com/4..

SpringBoot 2021.02.20

[Eclipse] Search Plugins 추가 - 검색 환경 개선

이클립스를 사용하다 보면 검색할때 답답한 부분이 있습니다. ''무료니깐 참고 써야지..' 가 아니라 플러그인을 받아서 검색 환경을 개선해야합니다. 예를 들면, 단축키 Ctrl + F에 검색창을 안 보이게 하고 싶습니다. 대표적으로 아래 두 방법을 이용할 수 있습니다. DevTools 테마에 포함된 Inline Search를 이용 Glance 플러그인 이용 저는 테마 자체는 Moonrise를 이용하기 때문에 두 번째 방법을 선호합니다. 그 밖에 다양한 플러그인들을 설치하여 개선된 환경에서 개발해봅시다. 플러그인 설치 방법 상단 메뉴의 Help - Eclipse Marketplace... 클릭 아래의 원하는 플러그인 검색 - install 추천 플러그인들 아래의 플러그인 중에서 원하는 ..

Tool/Eclipse 2021.02.08

[Git] Changes 파일 단위에서 줄 단위로 변경

Git을 사용중에 한 줄을 바꿨는데 파일 전체가 바뀐것처럼 보일때가 있습니다. 개행 문자 차이로 생긴 문제인데 Git의 설정으로 변경할 수 있습니다. 이슈 이클립스에서 14라인 코드를 추가하고 Git Perspective에 들어가 파일을 확인한 모습입니다. 위 화면을 보시면 파일 전체가 수정된 것처럼 보입니다. 운영체제별 개행문자를 다르게 사용하기 때문에 발생하는 문제라고 합니다. 해결 방법 git bash 실행 아래 명령어 입력 git config --global core.autocrlf true 다시 아까 수정한 파일의 Compare를 열어봅니다. 줄 단위로 변경된것을 확인할 수 있습니다. 링크 git 에서 CRLF 개행 문자 차이로 인한 문제 해결하기

Git 2021.02.08

[Postman] 포스트맨(Postman) 설치

포스트맨은 API 테스트를 할 수 있는 툴입니다. 윈도우에 설치 하는법을알아보겠습니다. 포스트맨 설치 https://www.postman.com/downloads/ ← 사이트에 접속 Download the App 선택 자신의 비트에 맞는 비트를 선택 (대체로 64bit) 회원가입과 로그인을 사용할 분들은 위에 버튼을, 바로 사용하실 분들은 Skip and go to the app 선택 상단의 + 버튼으로 새로운 Requset 생성할 수 있습니다. 테스트를 위해 Tistory를 GET 방식으로 요청해보겠습니다. 하단에 응답받은 HTML 코드를 확인할 수 있습니다. 링크 포스트맨 공식 홈

Tool/Postman 2021.02.08

[DBeaver] 커넥션(Connection) 추가하기

DBearver 커넥션 추가 방법에 대해 알아보겠습니다. 저는 MariaDB를 테스트 해보겠습니다. 사전에 디비버 설치 및 MariaDB 설치를 선행해주세요. DBeaver에 DB 연동 DBeaver 실행 콘센트모양 클릭 MariaDB 선택 - 다음 MariaDB 설치시 저장했던 root 비밀번호 입력 Test Connection ... Download 성공시 다음과 같은 팝업이 뜨면 확인 완료하면 다음과 같이 DB가 추가된 것을 볼 수 있습니다. 링크 [DBeaver] 디비버(DBeaver) 설치 [Database] MariaDB 설치

Tool/DBeaver 2021.02.02

[Eclipse] Lombok 설정

롬복은 Java에서 Domain, VO 등의 Model 객체를 생성할때 어노테이션을 이용하여 코드의 양을 대폭 줄일수 있는 라이브러리입니다. 이클립스에 롬복을 설정하는 방법에 대해 알아보겠습니다. Lombok 다운로드 https://projectlombok.org/download ← 사이트에 접속 Download [version] 클릭 설치된 파일 실행 만약 실행이 안된다면 JDK 설치와 환경변수 설정을 선행해주세요. 설치된 파일 위치에서 Shift - 우클릭 - 여기에 PowerShell 창 열기 아래 명령어 입력 java -jar .\lombok.jar 자동으로 eclipse.exe 파일을 찾아줍니다. 만약 찾지 못할 경우 Specify location.. 선택해 이클립스 실행 파일 찾기 Instal..

Tool/Eclipse 2021.01.29
728x90
반응형