본문 바로가기
728x90
반응형

🐎 언어(Language)35

[JavaScript] 옵셔널 체이닝과 논리 연산자로 객체 값 안전하게 다루기 코드를 작성하다 보면 if, if, if.. null & undefined 처리를 일일이 작성하다 보면 코드가 더러워지고 가독성도 떨어지게 된다. 이를 해결하기 위한 수단으로 옵셔널 체이닝과 논리 연산을 활용할 수 있다. 1. 옵셔널 체이닝 ( ?. )용도: 객체나 배열에서 중첩된 속성에 접근할 때, 해당 경로 중간에 null 또는 undefined가 있을 경우 에러를 방지한다.특징:중간 단계에서 null 또는 undefined일 경우 바로 undefined를 반환.객체 접근에 안전하게 사용.예제:const obj = { a: { b: null } }; console.log(obj?.a?.b); // null console.log(obj?.a?.c); // undefined console.log(obj?.. 2024. 12. 21.
[Java] MyBatis: ClassNotFoundException 트러블 슈팅 (JVM 네이밍 규칙) InnerClass 사용 시 Mybatis에서 ClassNotFound 에러를 발생시키는 원인인 JVM의 클래스 네이밍 규칙..? TDD 개발 중 Mybatis 매퍼 파일에 쿼리를 작성하여 실행했을 때 resultType으로 InnerClass인 Authority 클래스를 사용한 쿼리들에서 ClassNotFoundException이 발생했다. 이래서 테스트 주도 개발이 중요하다.... SELECT authority_id AS authorityId, authority_name AS authorityName, created_date AS createdDate FROM authorities Caused by: java.lang.ClassNotFoundException: Cannot find class: kr... 2024. 9. 18.
[JavaScript] 집합(Set) 자료형 사용하여 시간복잡도 줄이기 a배열을 반복하며 b배열에 a의 값과 일치하는 값이 있다면 a[?] 값을 1로 변경해야 한다. // 예시 데이터let a = [ { id: 1, value: 0 }, { id: 2, value: 0 }, { id: 3, value: 0 }];let b = [ { id: 2, value: 1 }, { id: 4, value: 1 }]; 기존 로직 - 이중 반복문기존에는 배열을 순차적으로 돌며 값을 비교하기 위한 가장 쉬운 방법인 이중 반복문을 사용하였다.a 배열의 크기만큼 (i)를 반복한다.b 배열의 크기만큼 (j)를반복한다.a배열의 i와 b배열의 j번째 값을 비교한다.값이 일치한다면 a[i]를 1로 변경한다. for (let i = 0; i  외부 반복문이 a.length만큼,.. 2024. 8. 29.
[JAVA] ver.8 Java 8버전이 많이 사용되는 이유. JDK 8은 2014년에 등장하였고 장기 지원(LTS)버전 중에서도 가장 오랜 기간 지원되는 버전이며, 이러한 이유로 많은 프로젝트들이 Java 8로 개발되었기 때문에 기존 제품과의 호환성과 안정성 등의 이유 때문에 아직까지도 가장 많이 사용되는 버전입니다. *Oracle JDK 버전별 지원 로드맵 Java 8버전의 핵심 기능들 Lambda Expression Stream Optional Class Lambda Expression람다 함수(Lambda Function)란?람다 함수는 함수형 프로그래밍 언어에서 사용되는 개념으로, 익명함수 라고도 불리고 있습니다.람다 표현식을 사용하여 함수를 정의하며 이름이 없는 함수로, 코드를 간결하게 만들고 익명 함수를 간단하게 .. 2023. 11. 10.
[Kotlin] 코틀린이란? (feat. Java) Kotlin은 JetBrains에서 개발한 신속하고 안전하며 실용적인 프로그래밍 언어로, 2011년 처음 공개되었다. Java 가상 머신 (JVM) 위에서 실행되며, Android 앱 개발을 비롯한 다양한 영역에서 사용되고 있다. 코틀린은 JetBranins에서 개발하는 크로스 플랫폼 범용 프로그래밍 언어로, 자바와 완벽하게 호환되도록 설계되었다. 일반적으로 JVM(Java Virtual Machine)에서 사용되나 Javascript, LLVM(Low Level Virtual Machine), Data Science 영역에서도 사용 가능하다. 파일 확장자는 일반적으로 .kt를 사용하며, 코틀린 스크립트는 .kts를 사용한다. 코틀린은 간결하고 실용적이며, 자바 코드와의 상호운용성(interoperabi.. 2023. 10. 15.
[Java] Quartz 스케줄러 Quartz는 Java로 작성된 오픈소스 스케줄링 라이브러리이다. Quartz를 사용하여 Java 애플리케이션에서 작업을 예약하고 관리할 수 있으며, 복잡한 작업 예약 및 스케줄링을 간편하게 처리할 수 있도록 도와준다. 라이브러리 추가. org.quartz-scheduler quartz 2.3.2 구조 Job - 실행할 작업을 나타내는 인터페이스로 execute 메서드를 구현하여 작업 내용을 정의한다. JobDetail - Job을 실행하기 위한 상세 정보를 가진 객체로, Job 클래스와 그룹명, JobData 등을 포함한다. Scheduler - 작업의 실행과 관리를 담당하는 핵심 컴포넌트로, JobDetail과 Trigger를 관리하여 작업을 스케줄링한다. Trigger - Job을 실행하는 시점을 .. 2023. 9. 24.
[Java] Gson이란? 💡Gson은 Java 객체를 Json 형식으로 변환하는데 사용할 수 있는 Java 라이브러리 이다. Gson은 Google에서 제공하는 java용 Json 라이브러리로, Java 객체를 Json 형식으로 직렬화(serialize), Json 형식의 데이터를 Java 객체로 역직렬화(deserialize)를 간단하게 할 수 있게 해준다. Gson을 사용하기 위해서는 라이브러리를 추가해줘야 한다. # Gradle dependencies { implementation 'com.google.code.gson:gson:2.10.1' } # Maven com.google.code.gson gson 2.10.1 Java 객체 -> Json 형식 직렬화 import com.google.gson.Gson; public .. 2023. 9. 24.
[Language] Compile과 Interprete의 개념과 차이 컴퓨터는 0 / 1(전류가 입력되면 1, 없으면 0)로 밖에 판단할 수 없다. 그렇기 때문에 개발자가 작성한 소스코드를 0과 1로 구성된 기계어(binary code)로 변환해 줘야 컴퓨터가 코드를 이해하고 실행할 수 있는데 코드를 기계어로 변환하는 방법에는 compile, interpret 두 가지가 있다. 컴파일러 (Compiler) Compile은 번역하면 '집대성'이라고 한다. 즉, 여럿을 모아 하나로 크게 완성하는 것이라는 뜻이다. 컴파일러는 소스코드를 모아서(묶어서) 미리 컴파일(번역)해 두었다가 한번에 실행한다. C, C++, C#, JAVA 등 장점: 한번 스캔을 마치면 실행파일을 만들어 놓고 계속 사용하기 때문에 인터프리터보다 실행속도가 빠르다. 컴파일 과정에서 오류를 검출할 수 있기 때.. 2023. 9. 17.
[Java] JVM - JRE - JDK 📌JVM, JRE, JDK의 이해와 관계 JVM (Java Virtual Machine) jvm이란 자바 가상 머신으로 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. 프로그램을 실행하기 위해서는 개발자가 작성한 코드를 컴파일을 통해 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정을 거쳐야 한다. 만약 C언어로 개발한 프로그램을 윈도우에서 사용하려면 .exe 로 컴파일하여 실행시킬 수 있다. 하지만 해당 프로그램을 리눅스나 맥 등 다른 운영체제에서 사용하려면 다시 실행할 운영체제에 맞는 파일로 컴파일 해줘야 한다. Example > 하지만 Java는 코드를 자바 컴파일러를 통해 Java Bytecode로 .class 확장자를 가지는 파일로 변환하여 각 운영체제에 설치되어 있는 JVM에 전달하기만 하면.. 2023. 9. 17.
728x90
반응형