전체 글 37

형변환(캐스팅,casting)이란?

형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는것이다. 예를들어, int타입의 값과 float타입의 값을 더하는 경우, 먼저 두값을 같은 타입으로, 즉, 둘다 float타입으로 변환한 다음에 더해야한다. 형변환방법 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙혀준붙혀주면된다. (타입)피연산자 예를들어, double d = 112.8; int score = (int)d; //double타입의 변수를 int타입으로 형변환 int score = (int)112.8;//변수 d의 값을 읽어와서 형변환한다. int score = 112;//형변환의 결과인 112를 변수 score에 저장한다. 변환 수식 결과 int -> char (char) 65 'A' char -> ..

Java 2024.01.19

REST, REST API, RESTful 정리

REST REST (Representational State transfer) 는 네트워크 상에서 Client와 Server사이에서 통신할때 사용하는 방식 중 하나의 규칙이다. REST에서는 정보를 주고 받을때, 그 정보를 자원(Resource)이라고 한다. 예를들어, Client가 인터넷 브라우저에 네이버 웹사이트에 들어가려고 보내는것을 요청(Request)이라고 한다. 이때, 브라우저에는 "https://www.naver.com"이라는 주소를 입력하게 되는데 이 주소 자체가 하나의 자원이 된다. 그리고 이 주소는 웹에서 "네이버"라고 하는 웹사이트에 대한 고유한 식별자, 즉 URI 라고 할 수 있다. URI는 간단히 자원의 집주소라고 생각하면 된다. 네이버 웹서버는 이 요청을 받고, 그에대한 응답(R..

Network 2024.01.18

JVM(Java Virtual Machine) 이란?

JVM이란 Java virtual machine을 줄인것으로 "자바를 실행하기 위한 가상 컴퓨터" 라고 할수 있다. JVM의 역할은 자바 바이트 코드를 운영체제가 인식할 수 있도록 해석해주는 소프트웨어이다. 아무리 컴퓨터라고해서 실제하는 컴퓨터가 아닌, 소프트웨어로 구현된 컴퓨터라는 뜻으로 컴퓨터 속의 컴퓨터 라고 생각하면 편할 것 이다. 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다. 위 이미지를 보면 일반 애플리케이션은 운영체제와 바로 붙어 있어서 운영체제에 종속적이다. 그래서 Windows가 아닌 다른 운영체제에서 실행시키기 위해선 그 운영체제에 맞게 애플리케이션을 변경해야된다. 그에 반해, Java ..

Java 2024.01.17

자바 특징 정리

Java의 특징 1. 운영체제에 독립적이다. 기존의 언어는 한 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영체제에 적용하기 위해서 많은 노력이 필요하였지만, 자바는 그렇지 않다. JVM이라는 자바가상머신을 통해 가능한 것인데, 자바 응용프로그램이 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환해준다. 2024.01.17 - [Java] - JVM(Java Virtual Machine) 이란? 자바로 작성된 프로그램은 운영체제에 독립적이지만, JVM은 운영체제에 종속적이어서 썬에서는여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 제공하고 있다. 2.객체지향 언어이다. 자바는 유명한 객체지향 프로그래밍 ..

Java 2024.01.17

[Java] 트랜잭션(transaction)에 대해서

1.트랜잭션이란? 트랜잭션이란 데이베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위를 설명한다. A가 B에게 만원을 보낸다고 가정한다. 우선 A의 통장에서 만원을 출금하고, B의 통장에 만원을 입금한다. 그 순간, 출금과 입금을 합쳐서 "송금"이라고 하나의 논리적 기능을 이루는 것이다. 2.트랜잭션의 성질(ACID) 1.원자성(Atomicity) 트랜잭션은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야한다. 예) 송금 과정에서 A에게서 만원을 출금했지만, B에게 만원을 입금하지 않는 경우가 발생하면 안된다. 2.일관성(Consistency) 트랜잭션이 성공적으로 완료되면 일관적인 데이터를 유지한다. 예) 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야한다. 3.독립성..

Java 2024.01.16

DI(Dependency Injection)와 IOC(Inversion of Control) 의 3가지 방법(필드주입, 생성자 주입, setter주입)

spring에서 DI(의존성 주입)이란, 객체간의 의존성을 개발자가 직접 호출(new연산자)하는 대신 외부(스프링 컨테이너)에서 객체를 생성해서 넣어주는 방식이다. 외부에서 두 객체 간의 관계설정을 해주는 디자인 패턴으로, 인터페이스를 사이에 두어 클래스 레벨에서의 의존관계가 고정되지 않도록하고, 런타임시 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 한다. public class Controller{ private Service service; service.test(); } 이렇게 Controller에서 Service를 사용하고 있는경우, Controller는 Service에 의존성이 있다고 할수 있다. 의존성이 있다는 말의 뜻은, 의존대상 즉 Service가 변하면 그것이 Con..

Spring Boot 2024.01.16

싱글톤 패턴(Singleton Pattern)

싱글톤 패턴은 오직 하나의 유일한 객체를 만들기 위한 코드 패턴이다. 다시 말해, 여러가지 이유를 이점으로 . 객체가 필요할 때 똑같은 객체를 새로 만들지 않고,기존의 객체를 가져와 활용하는 기법을 말한다. 싱글톤 패턴을 사용하는 이유 1. 메모리 측면의 이점 싱글톤 패턴을 사용하게 된다면 한개의 인스턴스만을 고정 메모리 영역에 생성하고 추후 해당 객체를 접근할 때 메모리 낭비를 방지할 수 있다. 2. 속도 측면의 이점 생성된 객체를 사용할 때는 이미 생성된 객체를 활용하여 속도 측면에 이점이 있다. 3. 데이터 공유가 쉽다 *_전역으로 사용하는 객체이기 때문에 다른 여러 클래스에서 데이터를 공유하며 사용할 수 있다. 하지만 동시성 문제가 발생할 수 있어 이점은 유의하여 설계하여야 한다. 싱글톤 패턴를 ..

Java 2024.01.15