Java 5

Method invocation may produce NullPointerException 과 Optional 활용

IDE에서 "Method invocation may produce NullPointerException" 경고 메시지를 발견했다. 왜 이런 Warning이 표시되는가?Method invocation '~~~' may produce NullPointerException 경고를 해석해 보면 메서드 호출 시 NullPointerException이 발생할 수 있다는 것을 의미한다.저의 경우엔 getString() 메서드를 호출할 때 paramters 객체가 null일 수도 있다는 말인데.. 사실 위 코드는 Spring에서 제공하는 인터페이스를 활용하는 거라 JobParameters가 null일 수가 없는 코드이기는 했다. IDE가 이런 메시지를 나타내는게 이해가 안 되긴 하지만, 좀 생각해 보니 getStrin..

Java 2024.10.11

[OOP] 왜 Class가 아니라 Object Oriented Programming 일까?

'객체지향 프로그래밍'의 정의를 찾아보면 '소프트웨어 개발에서 객체를 중심으로 문제를 해결하는 방법론' 혹은 '프로그램을 객체라는 단위로 구성하여 개발하는 프로그래밍 기법'이라고 많은 곳에서 알려준다.너무나 당연한 말처럼 알고있던 이 단어가 어느날 문득 왜 Class Oriented 가 아니라 Object Oriented 라는 명칭으로 정해졌을까?라는 궁금점이 생겨 다시 정리해봤다. 객체지향 프로그래밍(OOP, Object-Oriented Programming)이란?OOP 라는 용어를 모른다고 할지라도 특히나 Java로 개발을 하면 반드시 객체를 만들게 되어있다.따라서 우리가 만드는 건 오브젝트(Object)가 맞다. 하지만 사실 코딩을 할 땐 Object라는 단어를 한 글자씩 타이핑하진 않고 실제로 p..

Java 2024.08.26

경로(Path) 설정시 *, ** 차이

별표 == 애스터리스크(Asterisk) == 와일드카드(Wildcard)한국어로는 별표인 *는 애스터리스크 또는 와일드카드라고 불리는데, 개발 소스에서 각종 path 설정을 하는데 있어 자주 사용되기에 정확하게 어떤 의미인지 궁금했다. 찾아보면 Spring설정 파일을 포함하여 많은 프로그래밍 언어에서 패턴 또는 Select쿼리에서 다른 문자를 일치시키거나 대체하는데 사용된다고 설명돼있다. 쉽게 정리하자면, * 와 ** 는 여러 파일 및 디렉토리와 일치하는 경로 또는 특정 패턴을 지정하는데 사용하는 문자다. 추가적으로 동일한 의미인 애스터리스크와 와일드카드가 마치 서로 다른 용어처럼 불리는 이유는 사용되는 분야나 문맥에 따라 다르기 때문이다.1) 애스터리스크(Asterisk) : 일반적으로 프로그래밍 언..

Java 2023.04.13

break와 return, continue 차이 및 특징 정리

어느 프로그래밍 언어에서나 공통적이면서 필수적인 break문과 return 그리고 continue에 대해서 정리해보겠습니다. Break문 특징1) 가장 가까이에 있는 하나의 반복문을 벗어나기 위해 사용합니다.  (break문이 실행되면 Loop가 전부 끝나지 않았음에도 해당 반복문을 즉시 탈출)  Return문 특징1) 쓰여진 해당 함수에서의 탈출을 의미합니다. (break문은 반복문의 탈출이다!! 헷갈리기 ㄴㄴ!!)  → 예를 들어, return문 실행 시 '반복문을 포함하는 메서드' 자체를 종료시킴. 2) 메서드 내에서 return이 실행되면 뒷 줄에 코드가 더 있다고 하더라도 값 반환 후 종료. 3) 메서드의 출력값은 return명령어로만 가능. 4) 메서드의 리턴자료형이 void인 경우에는 ret..

Java 2019.02.15

Java String과 String Pool 및 메모리에 대한 정리

어떤 프로그래밍 책을 보더라도 거의 처음부터 나오는 개념이면서도 기초 중에 기초라고 생각했던 String에 대해 얼마나 알고 있었던 걸까요? 오늘은 평소에 굉장히 자주 접하는 String에 대해서 정리를 해보려고 합니다.아래 자바 코드는 몇 개의 객체를  생성할까요? 그리고 다음 코드의 실행 결괏값은 어떤 식으로 출력될까요?public class ExcampleString{ public static void main(String[] args){ String str1 = "Banana"; String str2 = "Banana"; String str3 = new String("Banana"); String str4 = new String("Banana"); System.out...

Java 2019.01.29