Java(7)
-
[JAVA] 자바를 공부해야하는 이유
많은 프로그래밍 언어 중 자바를 선택해야 하는 이유 프로그래밍을 공부하다보면 어떤 언어를 선택하여 공부해야 하는지 고민 될 때가 많다. 물론 자신에게 잘 맞는 언어를 선택하는 기준은 사람마다 다를 것이다. 취업하고 싶은 분야, 나에게 편한 언어 등등 각자의 기준이 있겠지만 만약 자신이 아직 명확하게 선택하지 못했다면 나는 'JAVA'를 추천한다. 우선, 자바라는 언어에 대해서 간단하게 알아보자!! 1) 플랫폼에 영향을 받지 않으므로 다양한 환경에서 사용한다. 2) 객체 지향 언어이기 때문에 유지보수가 쉽고 확장성이 좋다. 3) 프로그램이 안정적이고 풍부한 기능을 제공하는 오픈 소스이다. 사실 위에 있는 이유들은 많은 객체지향언어에 대표적인 특징들이다. 이제 내가 생각하는 자바의 장점들에 대해서 몇 가지 ..
2023.02.06 -
[JAVA] 자바의 메모리 사용
자바의 메모리 사용 자바를 사용하여 프로그램을 만들다보면 우리가 만든 프로그램이 컴퓨터 메모리에 어떻게 접근하는 공부해야하는 시기가 온다. 그러면 아래에서 우리 프로그램에 메모리에 어떻게 접근하는지 한번 알아보자!! JAVA 메모리 자바에서 작성한 프로그램이 메모리에 어떻게 적재되는지에 대한 간단한 그림이다. 1. 실행과정 *.java(Source)를 javac로 컴파일하여 *.class(Byte Code)로 실행파일을 만들면 Class Loader가 JVM의 메모리 영역 Runtime Data Area로 로딩시킨다. 2. Runtime Data Area 1) 메소드/스태틱 영역(Method/Static Area) JVM이 시작될 때 생성되는 공간으로 바이트코드가 이 영역에 저장된다. 클래스 정보, 변수..
2023.02.06 -
[JAVA] 자바가 내 컴퓨터에서 작동할 수 있는 이유 (JDK, JRE, JVM)
자바가 내 컴퓨터에서 작동하는 이유 우리는 항상 코딩을 해오면서 항상 무심코 넘어가는 부분들이 있다.. 바로 내 컴퓨터가 어떻게 'JAVA'라는 언어를 이해하고 내가 작성한 코드를 실행하는지에 대해서다. 우리는 단순히 인터넷에 'JAVA'를 검색하고 설치한다! 그렇다면 무엇을 내 컴퓨터에 설치하고 그것이 내 컴퓨터가 그 언어를 이해하게 해주는 것일까? 바로 알아보자!!! 1. JAVA JDK 위 사진에는 3가지의 구분선으로 구분된 것들을 볼 수 있다. 우리는 'JAVA'라는 언어를 내 컴퓨터가 이해 할 수 있게 'JAVA JDK'를 설치한다. Java JDK(Java Development Kit)는 Java SE의 표준안에 따라 만들어진 구체적인 소프트웨어로 컴파일러와 같은 개발에 필요한 각종 도구와 J..
2023.02.06 -
[JAVA] 자바 스프링(Java Spring)와 자바 스프링부트(Java SpringBoot)의 차이점
자바를 공부하는 사람들이 자주 듣는 단어들이 있다. 자바 스프링과 자바 스프링부트이다. 위 두 가지의 차이점은 무엇일까??? 먼저 간단하게 설명하자면, 자바 스프링 (Java Spring) : 큰 규모의 프로그램을 개발자들이 더욱 쉽게 만들수 있도록 있게 여러가지 기능들을 넣어놓은 뼈대(프레임워크) 자바 스프링부트(Java SpringBoot) : 위에서 말하는 뼈대(프레임워크)를 개발자들이 더 쉽게 사용할 수 있도록 만든 도구라고 생각하면 쉽다. 이제 조금 더 자세한 설명을 위해 아래로 이동해보자!!! 자바 스프링(Java Spring) 위 이미지에서 보면 자바 스프링에는 아주 다양한 프로젝트들이 존재한다. 몇 개의 프로젝트를 보면, Spring MVC : MVC 패턴 기반의 웹 프레임워크을 지원하는 ..
2023.01.24 -
[JAVA] 템플릿 엔진에 대한 설명과 JSP, Thymeleaf과의 관계
템플릿 엔진(Template Engine) 템플릿 엔진은 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어이다. (웹사이트 화면을 어떤 형태로 만들지 도와주는 양식) 웹 템플릿 엔진은 view code(HTML)와 data logic code(DB connection)을 분리해주는 기능을 가지고 있다. 이제 템플릿 엔진의 종류를 알아보자!!! 템플릿 엔진의 종류 템플릿 엔진은 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 나눌 수 있다. 1. 서버 사이드 템플릿 엔진 (Server Side Template Engine) 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어 Html을 그려서 클라이언트에 전달해주는 역할 HTMl 코드에서 고..
2023.01.24 -
[JAVA] JPA란 무엇일까? JPA를 사용해야 하는 이유와 SQL과의 관계
JPA(Java Persistence API) 자바 ORM에 대한 API 표준 명세이고, 인터페이스의 모음이다. 따라서 구현체가 없고, 사용하기 위해서는 ORM프레임워크를 선택해야한다. 쉽게 말해, 자바에서 DB를 쉽게 사용하기 위한 API라고 생각하면 된다!!! ORM(Object-Relational Mapping) 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해 패러다임의 불일치를 개발자 대신 해결해준며 객체는 객체대로 생성하고 데이터베이스는 데이터베이스에 맞도록 설계를 가능하게 해준다. 따라서, 개발자는 이를 매핑하는 방법만 전달해주면 된다. 이제 JPA의 동작과정과 사용하는 이유, SQL을 직접 사용할 때의 문제점을 살펴보자!! [1] 동작 과정 JPA는..
2023.01.24