본문 바로가기

반응형

java

람다식(Lambda expression) 깔끔하게 정리하기 Java 는 람다식의 도입으로 인해, 객체지향형인 동시에 함수형 언어가 되었다. 람다식의 정의 람다식은 메서드를 하나의 식(expression) 으로 표현한것을 말한다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 익명함수(anonymous function) 이라고도 한다. int[] arr = new int[10]; Arrays.setAll(arr, (i) -> (int)(Math.random()*10)+1); 위 람다식을 메소드로 나타낸다면 아래와 같다. int methodExam() { return (int)(Math.random()*10) + 1; } Java 에서 모든 메서드는 클래스에 포함 되어야하고 클래스도 새로 만들어야하며, 객체도 생성해야 비롯소 method.. 더보기
Java 스트림(Stream) 깔끔하게 정리하기 Java 8에서 새로 추가된 스트림(Stream) 기능은 컬렉션을 더욱 효율적이고 간편하게 다룰 수 있게 해줍니다. 스트림은 데이터 처리 방식을 명시적으로 표현할 수 있게 해주어 코드 이해도를 높이고 병렬 처리를 더욱 쉽게 할 수 있습니다. 스트림(Stream)이란? 스트림은 데이터를 처리하는데 사용되는 연속적인 데이터 요소의 시퀀스입니다. 각 요소는 한 번에 하나씩만 처리되며, 이는 배열이나 컬렉션과 같은 데이터 소스에서 생성될 수 있습니다. 스트림은 중간 연산과 최종 연산으로 구성되어 있으며, 이를 통해 데이터를 변환하고 결과를 도출할 수 있습니다. 기본적인 스트림 예제 아래는 간단한 리스트를 이용한 스트림의 예제 코드입니다. import java.util.Arrays; import java.util.. 더보기
Spring boot 에서 @bean 과 @component 어노테이션의 차이 Spring Boot에서 @Bean과 @Component 어노테이션의 차이 안녕하세요 부자되는 매직TV 입니다. Spring Boot에서 @Bean과 @Component 어노테이션은 모두 Spring Container에 Bean을 등록하는 데 사용되는 어노테이션입니다. 하지만 두 어노테이션에는 몇 가지 차이점이 있습니다. 오늘 티스토리에서는 해당 내용을 다뤄보고자 합니다. 그럼 시작해볼까요? @Component 어노테이션 @Component 어노테이션은 Spring Container에 Bean을 등록하는 데 가장 일반적으로 사용되는 어노테이션입니다. @Component 어노테이션은 클래스 레벨에 적용되며, 해당 클래스를 Bean으로 등록합니다. 예를 들어, 다음 코드는 MyMagicBean 클래스를 Be.. 더보기
안드로이드 앱 개발자가 반드시 알아야 할 기술과 지식 안드로이드 앱 개발자가 반드시 알아야 할 기술과 지식에 대해서 정리해볼까요? 안드로이드 개발을 위해 반드시 알아야 할 것들은 매우 많습니다. 하지만, 안드로이드 앱 개발을 위해 가장 중요한 것들은 다음과 같습니다 15가지 정도로 용약해 볼께요~ 자바(Java) 또는 코틀린(Kotlin) 프로그래밍 언어: 안드로이드 앱은 자바 또는 코틀린을 사용하여 개발됩니다. 따라서 이러한 언어를 사용할 수 있어야 합니다. 안드로이드 SDK: 안드로이드 SDK는 안드로이드 앱 개발을 위한 필수 도구입니다. 안드로이드 SDK에는 안드로이드 운영 체제를 위한 라이브러리, 도구, 샘플 코드 및 문서가 포함됩니다. 안드로이드 스튜디오(Android Studio): 안드로이드 스튜디오는 안드로이드 앱 개발에 필요한 IDE(통합 .. 더보기
openjdk 최신버전 다운로드 받기 이번 블로그에서는 Java 및 Spring boot개발을 하려면 openjdk 가 필수 이기때문에 그부분에 대해서 말씀드리고자 합니다. 개인적인 생각으로 자바의 많은 버전중에 지원기간이 긴 LTS(Long Term Support) 버전인 8 / 11 / 17 / 19중에 하나를 선택하여 받는것이 좋을것 같고요. 참고사항으로 19가 제일 최신 버전이고, 8 이나 17 버전이 가장 널리 사용되긴 합니다. 그리고, OpenJDK는 Java를 실행하기 위한 무료 오픈 소스 개발 키트라고 머릿속에 넣어두시면 될것 같고요.. 다음은 OpenJDK를 다운로드하고 설치하는 방법입니다. OpenJDK 다운로드 사이트에 접속합니다. (https://jdk.java.net/archive/) 원하는 Java 버전을 선택합니다.. 더보기
Java관련 백엔드 기술 면접 질문및 답변 깔끔 정리 벡엔드 기술면접에서는 아래 내용에 대해서 정리가 필요하다.. JAVA / SpringBoot / DB / Web / 자료구조 이중에서 JAVA에 대해서 정리해보자. 1) JVM에 대해서 설명해 보세요. JVM 은 Java Virtual Machine 의 약자로, 자바가상머신을 말함. JVM의 역할을 잠시 살펴보자면, 자바 어플리케이션을 클래스 로더를 통해 읽어서 자바API와 함께 실행하는 것을 말함. JVM 은 가비지컬렉터(GC) 즉 메모리 관리를 수행한다. 2) OOP에 대해서 정리해보자. OOP 는 Object Oriented Programming 의 약자로, 객체지향 프로그래밍을 말함. 현실 세계를 프로그램 설계에 반영한다는 것을 목표로 함. 프로그래밍에서 필요한 데이터를 추상화 시켜서 Method.. 더보기
ChatGPT 연동 JAVA로 구현해보기 (ft.python, nodejs) openai 에서는 python과 nodejs 만 구현 예제가 있길래... 자바로 한번 공부차 구현해봤네요... 참고로 아래는 python 소스 import os import openai openai.api_key = os.getenv("OPENAI_API_KEY") openai.Completion.create( model="text-davinci-003", prompt="Say this is a test", max_tokens=7, temperature=0 ) 그리고 아래는 nodejs 소스 const { Configuration, OpenAIApi } = require("openai"); const configuration = new Configuration({ apiKey: process.env.O.. 더보기
NSA, 메모리 안전문제로 C/C++ 대신 C#, Go, Rust 등의 언어를 권장하는 지침 발표를 했군요 (nsa.gov) NSA, 메모리 안전문제로 C/C++ 대신 C#, Go, Rust 등의 언어를 권장하는 지침 발표를 했군요 주요 내용을 확인해 봤는데요.. Commonly used languages, such as C and C++, provide a lot of freedom and flexibility in memory management while relying heavily on the programmer to perform the needed checks on memory references. Simple mistakes can lead to exploitable memory-based vulnerabilities. Software analysis tools can detect many instances of .. 더보기

반응형