[Java, 자바] 불변 객체에 대하여
프로그래밍/Java2024. 6. 27. 23:03[Java, 자바] 불변 객체에 대하여

클래스를 불변으로 설계하는 이유자바에서 클래스를 불변으로 설계하는 이유는 캐시의 안정성, 멀티 쓰레드의 안정성, 엔티티의 값 타입 등 다양한 이유에서 클래스를 불편으로 설계하고 있습니다. 하지만 모든 클래스를 불변으로 만드는 것은 아닙니다.대부분 의 클래스는 값을 변경할 수 있게 만들어지는 가변 클래스가 일반 적이고, 불변 클래스는 값을 변경하면 안되는 특별한 경우에 만들어서 사용한다고 생각하시면 됩니다 !캐시, 멀티 쓰레드 등에 대해 해당 글에서 깊이 설명하지 않지만 앞으로의 포스팅을 통해 하나하나 알아가보겠습니다 :) 기본형과 참조형의 공유먼저 자바의 데이터 타입을 가장 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있습니다.기본형 : 하나의 값을 여러 변..

[Java, 자바] Object클래스에 관하여
프로그래밍/Java2024. 6. 23. 23:40[Java, 자바] Object클래스에 관하여

Object클래스란?먼저 Object는 java.lang 패키지의 대표적인 클래스입니다. 자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object클래스입니다. 아래 그림을 보며 설명을 이어나가겠습니다.클래스에 상속 받을 부모 클래스가 없으면 묵시적으로 Object 클래스를 상속 받습니다.쉽게 이야기해서 자바가 extends Object 코드를 넣어줍니다.따라서 extends Object는 생략하는 것을 권장합니다.클래스에 상속 받을 부모 클래스를 명시적으로 지정하면 Object를 상속 받짖 않습니다.쉽게 이야기해서 이미 명시적으로 상속했기 때문에 자바가 extends Object 코드를 넣지 않습니다.묵시적(Implicit) vs 명시적(Explicit)묵시적 : 개발자가 코드에 직접 기술하지 않아..

[Java, 자바] @JsonProperty, @JsonNaming이란?
프로그래밍/Java2024. 6. 20. 19:41[Java, 자바] @JsonProperty, @JsonNaming이란?

API 통신을 하다 보면 대부분 JSON 형태로 데이터를 주고 받습니다. 이때, 서로 파라미터 작성 방식(카멜케이스, 스네이크케이스) 또는 파라미터명이 다를 경우 데이터를 파싱하는 도중에 에러 또는 원활하게 파싱이 되지 않는 경우가 있습니다 ! 카멜 케이스, 스네이크 케이스란?카멜케이스(Camel Case)첫 글자는 소문자로, 중간 글자들은 대문자로 시작하는 표기법입니다.ex) memberId, memberName, memberPhoneNumber 스네이크 케이스(Snake Case)첫 글자는 소문자로, 중간 글자들은 언더바(_)가 포함되는 표기법ex) member_id, member_name, member_phone, member_phone_number일반 코드 예시간단하게 Json 형태로 Reques..

[Java, 자바] 추상클래스와 추상메소드
프로그래밍/Java2024. 6. 19. 22:29[Java, 자바] 추상클래스와 추상메소드

추상메소드(abstract method)추상메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 메소드이고, abstract키워드를 선언하는 선언부만 존재하고 구현부는 작성하지 않고 사용합니다. 작성되어 있지 않은 구현부는 자식클래스에서 오버라이딩하여 사용합니다 !abstract 반환타입 메소드명(); 추상메소드 예시public abstract String getSubject();public abstract void setSubject(String s);// 컴파일 오류public abstract fail() { return "bye";} 추상클래스(abstract class)추상메소드를 가지고 있으면 반드시 추상 클래스로 선언해야합니다. 추상클래스는 abstract 키워드로 선언합니다 ! 추상클..

[Java, 자바] JVM의 동작원리와 기본개념
프로그래밍/Java2024. 6. 18. 20:30[Java, 자바] JVM의 동작원리와 기본개념

자바는 OS에 독립적인 특징을 가지고 있다.JVM이 OS와 프로그램 사이에서 기계어로 해석해주는 역할을 하기 때문이다. Java의 탄생배경Java는 썬 마이크로시스템즈의 제임스 고슬링 이라는 사람과 다른 연구원들이 개발한 프로그래밍 언어입니다. 1991년 그린 프로젝트(Green Project)라는 이름으로 시작해 1995년 발표가 되었다고합니다 ! 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 개발했는데 아이러니하게도 현재는 웹 어플리케이션 개발에 가장 많이 사용하는 언어 중에 하나가 되어있죠 ㅎㅎ 소문에 의하면 제임스 고슬링이라는 사람이 가전제품 내에 동작하는 프로그램을 개발하려고 하는데 그 당시에는 유닉스 기반의 배경을 가지고 있었기 때문에 사용하던 프로그래밍 언어 C/C++의 특성상 여러 하드..

[React] 텍스트 크립보드에 복사하기(react-copy-to-clipboard)
프로그래밍/React2024. 6. 18. 19:41[React] 텍스트 크립보드에 복사하기(react-copy-to-clipboard)

react-copy-to-clipboard 사용하기아래와 같이 react-copy-to-clipboard 라이브러리를 설치합니다 !npm install --save react-copy-to-clipboard CopyToClipboard 컴포넌트를 이용해 작성해줍니다 !import {CopyToClipboard} from "react-copy-to-clipboard/src"; alert("클립보드에 복사되었습니다.")}> {wallet}CopyToClipboard를 import한 뒤 CopyToClipboard 컴포넌트의 'text'에 복사할 텍스트를 입력하면 클릭 시 자동으로 클립보드에 복사됩니다 !

[Spring, Spring Boot] @Value가 null일 때의 원인과 해결 방법
프로그래밍/Java2024. 6. 17. 19:44[Spring, Spring Boot] @Value가 null일 때의 원인과 해결 방법

@Value란 ?먼저 @Value 어노테이션의 경우 DB접속 정보나 비밀번호, secretKey와 같이 민감한 정보를 별도의 파일로 분리해서 환경 정보에 맞는 값을 불러오도록 하는 어노테이션입니다. application.properties 또는 application.yml에 값을 설정하면 필드나 메서드에 값을 주입해줄 수 있습니다 ! null을 반환할 때의 원인@Value 어노테이션이 property의 값을 받아오지 못하는 경우는 크게 네 가지가 있습니다 ! properties 이름을 잘못 입력했을 경우@Valse("${aws.secret-kee}")상단의 코드와 같이 properties에 등록한 이름과 다를 경우 null값을 반환합니다. Bean으로 등록되지 않은 경우클래스를 Bean(@Componen..

[StringBoot] Azure 번역기 API 사용하기
프로그래밍/Java2024. 6. 12. 21:17[StringBoot] Azure 번역기 API 사용하기

번역기 API를 사용하기 위해 Papago open API를 사용하려고 했으나.... 서비스 지원이 종료됬다고 하네요.....우우우우우~그래서 ! Azure를 통한 번역기 API를 사용해보았습니다 !Azure 가입 및 구독API를 사용하려면 Azure에 가입한 후 구독을 진행해줘야합니다 !  12개월은 무료로 사용할 수 있다고합니다 ! 클라우드 컴퓨팅 서비스 | Microsoft AzureMicrosoft Azure의 유연한 개방형 클라우드 컴퓨팅 플랫폼을 통해 목적에 따라 투자하고 비용을 절감하며 조직을 더 효율적으로 만드세요.azure.microsoft.com위 링크를 통해서 회원가입을 진행한 뒤 메인 페이지 배너에 있는 Azure 무료 체험하기를 클릭하면 해당 서비스를 이용하실 수 있습니다 ! 번역..

image