전체 글 106

SaaS (Software as a Service) ?

SaaS (Software as a Service)는 사용자가 소프트웨어를 설치하지 않고 직접 인터텟에서 사용가능한 소프트웨어를 말한다.구글의 엑셀시트나, 넷플릭스, 깃헙 그리고 흔히 이런저런 광고가 많은 설치없이 바로 할 수 있는 웹게임 같은것도 SaaS라고 할 수 있다.그렇다면 요즘 SaaS가 많이 쓰이고 있는 이유는 무엇이 있을까?우선 이는 요즘 AWS등의 클라우드컴퓨팅의 대세와도 크게 연관이 있다. 수평적 확장이 유연하고 자유로운 클라우드환경과 잘맞는 SaaS가 유용하다고 할 수 있다. 특징 1.초기비용이 낮다사는 형식이 아니라, 구독형식이기 때문에 초기 비용이 낮지만, 장기적으로 사용할 경우 오히려 더 비싸질 수 있다. 2.접근성이 좋다설치하지 않기 때문에 인터넷만 된다면, 어디서든, 그리고 다..

개발공부 2024.11.28

리플렉션 (Reflection)

자바에서는 크게 컴파일타임 -> 런타임 이런식으로 동작을 나눌 수 있다.이때 런타임에 클래스, 메서드, 필드 등의 정보를 동적으로 확인하고 조작할 수 있는 기능을 리플렉션 이라고 한다.주로 java.lang.reflect 패키지에 포함된 클래스와 인터페이스를 통해 제공된다.이를 활용하면 컴파일 시간에 알 수 없는 객체나 클래스의 구조를 런타임에 확인하고 조작할 수 있다. 리플렉션의 주요 기능1.클래스의 정보 탐색- 클래스 이름, 패키지 이름, 수퍼 클래스, 구현 인터페이스 등을 확인 가능.2.필드, 메서드, 생성자 접근- 클래스의 필드, 메서드, 생성자 정보를 가져오고 수정하거나 호출 가능. 3.객체 생성- 클래스의 생성자를 사용하여 객체를 동적으로 생성할 수 있음.4.접근제어 무시- private 접근..

언어/Java 2024.11.26

예외처리 Exception Handling

Spring에서의 예외처리(Exception Handling) 메커니즘 > 프로그램의 비정상적 종료를 막기위해, 예외가 발생한 시점부터 예외처리기가 호출되고 처리되는 과정 예외처리는 3가지 부분으로 나뉜다.1.예외를 발생시키는 과정(throwing) / 2.예외 전파(propagation)  / 3.예외를 처리하는 과정(handling) 1.예외 발생 (Throwing Exception)- 일반적으로 코드 실행 중 예기치 않은 상황이 발생 했을 때 throw 키워드를 사용하여 예외를 발생시킴- 자바에서는 예외를 나타내는 클래스들이 있으며, 예외가 발생한 상황에 따라 적절한 예외 클래스를 선택하여 예외를 발생시킴- 프로그램 실행중 예외가 발생하면 JVM은 해당 예외를 발생시킨 메서드의 호출스택정보를 스택추..

Spring & Boot 2024.11.25

ConcurrentHashMap

Concurrent의 영어 뜻은 돌시발생의, 일치하는, 경쟁상대 등이 있다.즉 동시성을 지닌 해쉬맵이라고 보면 된다.여러 스레드에서 공유해도 안전성을 보장한다는 것이다. 멀티스레드 환경에서 동시성과 성능을 모두 고려하여 설계되었다. 특징1) 멀티스레드 안전 (Thread-Safe)ConcurrentHashMap은 멀티스레드 환경에서 동기화 문제 없이 안전하게 사용할 수 있습니다.내부적으로 동기화를 통해 데이터를 보호하며, 읽기/쓰기 작업을 효율적으로 처리합니다.2) 높은 성능synchronized를 사용하여 전체 맵을 잠그는 대신, 세분화된 잠금(Lock Striping)을 사용합니다.자바 8 이전에는 세그먼트(Segment)라는 구조로 나누어 락을 관리했으며, 자바 8부터는 CAS(Compare-And..

언어/Java 2024.11.23

Optional 옵셔널

Optional 클래스는 자바8부터 도입된 기능으로, 널 포인터 예외(NullPointerException)를 방지하고 더 명시적이고 안정적으로 널값을 다룰 수 있게 해준다. Optional은 널 값을 가질 수 있는 객체를 표현하는 컨테이너이다. 이는 널 값을 가질 수도 있고, 아닐 수도 있다는 것을 나타낸다.이를 사용하면 다음과 같은 3가지 구체적인 장점이 있다. 장점1.널 포인터 예외(NullPointerException)를 방지2.가독성 증가, 및 안정적인 API설계3.다양한 함수를 사용 가능 (filter, map 등) 주의점1.반환값으로 사용하고, 클래스필드에 Optional 사용 자제 (메모리 오버헤드 발생 가능성있음)2.값이 항상 존재할 경우 불필요하게 사용할 필요가 없음3.값을 꺼내는 Op..

언어/Java 2024.11.22