본문 바로가기

java22

람다식(Lambda Expressions) 베하! 안녕하세요 여러분, 일단고입니다. 여름 휴가는 잘 다녀오셨나요? 오늘은 개발하면서 알게된 ‘람다 캡처링’에 대해서 알아보겠습니다. 요즘은 소스 관리와 협업의 필요성 때문이라도 람다식을 이용한 선언형 프로그래밍이 유행 혹은 지향하는 조직들이 많이 있습니다. 각종 개발 언어를 가리지 않는 이 람다식에 대해 먼저 알아볼게요! 람다식이란 람다식이란(Lambda Expressions) 메서드를 하나의 식으로 표현한 것입니다. 즉 함수의 식별자와 반환값 없이 함수를 구현하기 때문에 익명함수(anonymous function)라고 부르기도 합니다. 람다식은 java언어에서는 하나의 익명 클래스로 분류됩니다. 메서드는 클래스안에서 선언되고 객체에 의해 사용되기 때문에 클래스로 봐야 합니다. 쉽게 얘기해서 람다식.. 2023. 8. 18.
[Java]싱글톤 패턴 깨트리는 방법 및 대응 방법 베하~! BTC 블랙아웃입니다!! 지난 포스팅에서는 싱글톤 패턴의 구현 방법에 대해 알아봤습니다. 지난 포스팅 https://btcd.tistory.com/1300 [Java] 싱글톤 패턴 구현하는 방법 베하~! BTC 블랙아웃입니다!! 이번 포스팅에서는 디자인 패턴 중에서도 생성 패턴에 속하는 싱글톤 패턴에 대해서 알아보겠습니다. 싱글톤 패턴이란 특정 클래스의 인스턴스가 프로그램 내에서 btcd.tistory.com 오늘은 이 패턴의 취약점을 알아보고, 싱글톤 패턴을 어떻게 깨트릴 수 있는지 그리고 대응 방법에 대해 살펴보겠습니다. 리플렉션(Reflection) 리플렉션이란 Java에서 제공하는 기능 중 하나로, 런타임에서 프로그램의 내부 구조, 즉 클래스, 메서드, 필드, 생성자 등의 메타데이터에 접.. 2023. 8. 7.
정적 팩토리 메서드(Static Factory Method) 베하 안녕하세요 여러분. 일단고입니다. java라는 언어는 너무 많이 사용하는 언어이자 어려운 언어라고 생각이 듭니다. 하지만 Java를 땔 수 없는 저의 상황입니다… 오늘 얘기해볼 주제는 Java 언어의 정적 팩토리 메서드(Static Factory Method)에 대해 알아보겠습니다. 1. 정적 팩토리 메서드란? Java라는 언어를 경험을 해본신 분이라면 아마 new 라는 키워드를 모두 알고 있을 것 같습니다. java는 객체지향언어로 new 라는 키워드를 통해서 객체를 생성하고 사용합니다. 이러한 객체 생성 방식을 new 키워드가 아닌 우리가 흔히 아는 메서드 즉, 함수로 객체를 생성하게 하는것을 정적 팩토리 메서드라고 합니다. 현업에서는 우리가 java언어를 배울 때 new 키워드로 객체를 생성했.. 2023. 8. 4.
[Java] 싱글톤 패턴 구현하는 방법 베하~! BTC 블랙아웃입니다!! 이번 포스팅에서는 디자인 패턴 중에서도 생성 패턴에 속하는 싱글톤 패턴에 대해서 알아보겠습니다. 싱글톤 패턴이란 특정 클래스의 인스턴스가 프로그램 내에서 오직 하나만 존재하도록 보장하는 패턴입니다. 이는 주로 시스템 런타임, 환경 세팅에 대한 정보 등 인스턴스가 여러개일 때 문제가 생길 수 있는 경우에 사용합니다. 그럼 이제 이 싱글톤 패턴을 구현하는 여러 가지 방법에 대해 자세히 알아보겠습니다. Private 생성자에 static 메서드 첫 번째 방법은 private 생성자를 통해 인스턴스 생성을 제한하고, static 메서드를 통해 인스턴스를 제공하는 방식입니다. public class Singleton { private static Singleton instance.. 2023. 8. 3.
경쟁조건(Race Condition) 안녕하세요 여러분 베하!! 또 다시 비가 많이 내릴 예정이라 하니 걱정입니다. 다들 몸 부터 먼저 챙기셔야 합니다. 오늘은 경쟁조건에 대해 공부하려고 합니다. 공유메모리 위 그림에서 특정 프로세스는 여러 스레드를 가지고 있고 프로세스는 메모리 구조상 코드, 데이터, 힙, 스택영역을 차지합니다. 이때 프로세스 내부의 스레드는 스택메모리를 제외한 나머지 메모리는 모두 공유하여 사용하고 있습니다. 프로세스는 부서, 스레드는 부서의 사람이고 스택은 책상이며 코드, 데이터, 힙은 부서의 업무에 필요한 데이터가 있는 서랍이라고 생각하겠습니다. 우리는 출근하면 부서의 데이터를 가져와서 자신의 책상에 올리고 자신이 그 업무를 처리한다생각하면 한 스레드가 스택영역을 제외한 나머지는 공유한다고 볼 수 있습니다. 경쟁조건(.. 2023. 7. 21.
안드로이드 앱개발(2) - 로또 번호 생성 앱 베하 비티시 보이즈 입니다! 오늘은 저번 "안드로이드 앱개발(1)" 글에 이어서 동적으로 실행되는 안드로이드 앱을 만들어 보겠습니다! 이번글에서 만들어 볼 앱은 로또 번호 생성 앱 입니다! 우선 안드로이드 설치 및 환경 설정은 전 글을 참고해주세요! https://btcd.tistory.com/1221 안드로이드 앱개발(1) 베하(베스핀 하이라는 뜻 입니다) 비티시 보이즈 입니다! 이번 글에서는 Android application 개발에 대해 알아 보겠습니다. 우선 안드로이드란? 안드로이드는 스마트폰, 태블릿 PC같은 터치스크린 모 btcd.tistory.com 우선 글자들이 선형으로 배치 될 수 있도록 LinearLayout 을 사용하고 로또 번호들이 세로로 나올 수 있도록 orientation 옵션에.. 2023. 7. 20.
안드로이드 앱개발(1) 베하(베스핀 하이라는 뜻 입니다) 비티시 보이즈 입니다! 이번 글에서는 Android application 개발에 대해 알아 보겠습니다. 우선 안드로이드란? 안드로이드는 스마트폰, 태블릿 PC같은 터치스크린 모바일 장치 용으로 디자인된 운영 체제이자 수정된 리눅스 커널 버전을 비롯한 오픈 소스 소프트웨어에 기반을 둔 모바일 운영 체제 입니다. 그리고 안드로이드는 개발자들이 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 하였으며, 컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공한다. 또한 안드로이드 소프트웨어 개발 키트(SDK)를 통해 응용 프로그램을 개발하는 데 필요한 각종 도구와 응용 프로그램 인터페이스(API)를 제공하고 있습니다~ 그리고 응용 프로그램 즉 애플리케이션을 개발 할.. 2023. 7. 6.
MVC 모델이란? 안녕하세요 Level-up team 입니다! 오늘은 웹 개발의 기본 MVC 패턴에 대해 알려드리고자 합니다. MVC 모델이란 무엇일까요? Model - View - Controller로 소프트웨어 공학에서 사용되는 아키텍처 패턴 중 하나입니다. MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위해서 사용합니다. 화면과 데이터 처리를 분리하여 코드 간의 종속성을 줄이고 구성 요소 간의 역할을 명확하게 하므로써 코드 분리가 쉽고 협업에 용이하다는 장점이 있습니다. MVC 패턴 사진 출처 : https://www.codeproject.com/Articles/879896/Programming-in-Java-using-the-MVC-Architecture 사진 출.. 2023. 1. 18.