자바에는 데이터의 타입을 나눌 때 Primitive Type(원시 타입), Reference Type(참조 타입) 두 가지 타입으로 나눌 수 있다. Primitive Type 메모리에 실제 값을 저장하는 변수이다. Primitive Type은 8가지 종류의 데이터 타입으로 나뉜다. boolean byte short char int long float double Reference Type 메모리에 참조 객체의 주소값을 저장하는 변수이다. Reference Type은 8가지 종류의 Primitive Type을 제외한 모든 데이터 타입이다. 인스턴스화가 가능한 클래스나 배열이 Reference Type에 포함된다. 아래와 같은 우리에게 익숙한 예시가 있다. String Scanner int[] String[..
함수를 호출하는 방법에는 두 가지가 있다. 값에 의해 함수를 호출하는 Call by value, 값 참조에 의해 함수를 호출하는 Call by reference 두 가지가 있다. 좀 더 자세히 알아보자. 여기서 말하는 '값에 의한 호출'과 '참조에 의한 호출'은 무슨 말일까? Call by value 값에 의한 호출은 함수를 호출할 때 매개변수로 받은 값을 복사하여서 호출하는 방식. 말 그대로 기존에 존재하던 데이터와 값만 같은 다른 데이터를 생성하는 것이다. 완전히 다른 데이터를 생성하여 인자로 넘겨주기 때문에 함수 내에서 인자값의 변경이 일어난다고 해도 기존 변수에는 아무런 영향이 없다. Call by reference 참조에 의한 호출은 매개변수로 받은 값의 주소를 참조하여 해당 주소의 값을 호출하..
JVM이란 JVM은 기본적으로 자바 가상 머신 기반 프로그램이 linux, windows 등 어느 환경에서도 원활하게 돌아갈 수 있도록 돕는 환경이다. JVM은 프로그램의 메모리를 관리하고 최적화하며 특정 기기상에서 실행되고 있는 프로세스, 자바 앱에 대한 리소스를 대표하고 통제하는 서버이다. JVM의 특징 자바의 모토가 "Write once, run anywhere(WORA)"인 만큼, JVM을 통해 OS에 종속적이지 않은 애플리케이션을 개발할 수 있다. 자바 언어 자체는 컴파일을 통해 바이트코드로 변환되고 JVM을 통해 실행되기 때문에, 개발자는 코드 작성 시에 하드웨어 호환이나 OS호환에 대해 고려할 필요 없이 JVM 호환이 되는 언어나 자바로 코드를 작성하면 된다는 큰 장점이 있다. JVM은 자바..
스프링 공부를 하면서 그냥 이렇게 하는구나~ 정도로만 알고 있었던 계층형 아키텍처(Layered Architecture)가 무엇인지, 그리고 왜 사용하는지에 대해 알아보자. 계층형 아키텍처란? 계층형 아키텍처는 소프트웨어 개발에서 일반적이고 널리 사용되는 아키텍처이다. 계층형 아키텍처는 일반적으로 Presentation Layer, Business Layer, Persistence Layer, Database Layer, 총 4가지의 계층으로 나뉜다. 꼭 4가지로 나뉘어야 한다는 규칙은 없으나, 아래의 사진과 같이 4가지의 계층으로 나뉘는 것이 가장 보편적인 방법이다. 분리된 계층의 수에 따라서 n-tier-architecutre라고 칭하기도 한다! Presentation Layer (UI Layer, ..
스프링부트를 활용해서 기본적인 CRUD를 구현해 보자. 세팅은 아래와 같이 세팅하고 진행했으며 의존성은 간단한 CRUD만 구현할 거라 Spring Web, Lombok을 추가하였다. 구성은 기본적인 Layered Architecture(계층화 아키텍처)로 구현하였다. Layered Architecture(계층화 아키텍처) 다른 게시물에서 추후에 다루도록 하겠다! 구성 먼저 영역을 간단하게 Dto, Repository, Service, Controller로 구성하고 패키지를 생성하였다. UserDto UserDto에 변수를 저장해 주고 필요한 Lombok 어노테이션을 추가해 주자. 변수의 접근제한자는 private이기 때문에 외부에서 변수에 접근하여 값을 불러오고 값을 변경해 주기 위해서는 Lombok의 ..
Spring Initializer를 활용하여 스프링부트 기본 세팅을 해보자. https://start.spring.io/ Project 빌드 자동화 도구를 선택해주자. Gradle을 사용하였다. Language 개발하는 언어를 선택해준다. 자바로 개발할거니 자바를 당연히 선택해준다. Kotlin + Spring 을 합쳐서 코프링으로도 많이 개발한다고 하네요! Spring Boot PRE: 다음 GA버전의 핵심 기능들을 포함하는 버전입니다. 안정적인 버전이 아닐 수 있기에 사용하지 않았습니다. Snapshot: 개발중인 버전이라 변경도 잦고 버그가 포함되어 있기 때문에 굳이 사용하진 않았습니다... GA(General Availability): 안심하고 써도 좋은 공개된 안정적인 버전입니다. 안정성이 검증..