이모지(Emoji)는 웹페이지나 어플리케이션 같은 곳에서 감정이나 아이디어를 표현하는데 사용되는 작은 그림이나 아이콘입니다. 일본에서 개발되었으며 전 세계적으로 널리 사용되고 있습니다. 이모지는 웃는 얼굴, 눈물 흘리는 얼굴, 동물, 식물, 날씨 현상, 심볼 등 다양한 사물이나 감정을 표현하며 텍스트 대화에서 감정을 전달하는 데 유용합니다. 이모지는 유니코드 표준의 일부로, 다양한 디지털 플랫폼과 운영 체제에서 공통으로 인식하고 표현할 수 있습니다. 이모지는 텍스트 기반의 커뮤니케이션을 더 풍부하고 즐겁게 만드는 동시에, 문맥에 따라 다르게 해석될 수 있는 문제도 갖고 있습니다. 이모지는 위의 설명과 같이 유니코드(Unicode) 표준의 일부입니다. 이모지를 만들기 위해서 여러개의 유니코드가 필요하며, ..
MySQL에서는 sha256_password으로 비밀번호 컬럼을 저장하는 기능이 최근 버전에서 탑재되어 있지만, 여기서는 직접 SHA256 모듈을 호출해서 비밀번호를 저장해보도록 하겠습니다. Maven, pom.xml mysql mysql-connector-java 8.0.27 우선 MySQL에 연결하기 위해서 MySQL Connector/J 라이브러리를 Maven Pom.xml 파일에 Dependency로 추가합니다. Sha256, Java Code import java.security.MessageDigest; public class TestMain { public static void main(String[] args) { String password = "패스워드"; String hashedPas..
Java에서 JSON을 파싱하는 방법을 보통 많이 하겠지만, Map을 JSON으로 변환해야 되는 때도 있습니다. 예를 들어, POST로 데이터를 전송해야 할 때 JSON으로 String 값을 변환해서 전송하게 되면, 쉽게 처리가 가능한 장점등이 있기 때문이죠. 그리고 Java에서 Map을 JSON으로 변환하는 방법 또한 많이 있습니다만, 대부분 라이브러리를 사용해서 변환을 하는 것이기 때문에 여기서는 대표적인 라이브러리를 하나 소개하고 변환을 시켜보도록 하겠습니다. Jackson 라이브러리 만약 이 방식을 스프링부트(Spring boot)로 만든다면, Jackson 라이브러리는 별도로 설치하지 않아도 되는 경우가 많습니다. 하지만 라이브러리가 존재하지 않을 경우 아래와 같이 라이브러리를 추가하시면 됩니다..
Java에서 뭔가를 계산할 경우 NaN이 발생할 수 있습니다. 특히 공식이 복잡해지고 데이터의 예측이 힘들 경우 발생할 가능성이 높아지는데요. NaN은 왜 발생하고 어떻게 대처를 해야 하는지 알아보도록 하겠습니다. NaN의 뜻 우선 NaN이 무슨 뜻인지를 알아야 되겠죠. NaN은 영어로 Not a Number를 뜻합니다. 한마디로 숫자가 아니라서 숫자로 표현을 할 수 없는 상태를 말합니다. NaN 발생원인 NaN이 발생하는 경우는 값이 아닌 것을 계산할 때 발생하는데요. 0의 값을 0으로 나눴을 때 자주 발생되곤 합니다. NaN 발생 케이스 System.out.println(0.0f / 0.0f); System.out.println(Math.sqrt(-1.0f)); System.out.println(Ma..
자바(Java)에서는 스트링(String) 형태의 변수의 경우 값이 비었는지 체크하기 위해서 isEmpty라는 메소드를 지원합니다. 이 값은 언제 사용을 하면 좋은지 그리고 어떤 부분에 대해서 조심을 하는게 좋은지 알아보도록 하겠습니다. isEmpty isEmpty() 메소드는 문자열이 빈 값이면 true, 비어있지 않으면 false를 리턴하는 메소드입니다. 아래의 예제를 보면서 이해를 해보도록 하겠습니다. 값이 비어있을 경우 String test = ""; System.out.println(test.isEmpty()); // true 값이 있을 경우 String test = "111"; System.out.println(test.isEmpty()); // false 위와 같이 test라는 String ..
제곱과 루트(제곱근)을 구하는 방법은 수많은 언어(Language) 프로그램들이 내장 라이브러리들로 제공이 됩니다. 마찬가지로 자바 역시 제곱과 루트를 구하는 방법을 제공해주고 있습니다. Math 클래스 자바에서 수학과 관련된 메소드를 활용하기 위해서는 내장 라이브러리인 java.lang.Math 클래스를 활용하면 됩니다. Math 함수는 기본 지수, 로그, 제곱근 및 삼각 함수와 같은 기본 숫자 연산을 수행하기 위한 메소드들이 포함되어 있습니다. 제곱, Math.pow() 자바에서 제곱을 구하기 위해서는 Math 클래스의 pow 메소드를 사용하면 됩니다. pow() 사용법 pow(double a, double b) 첫번째 인수인 a 값을 b 만큼 곱하며 리턴값은 double 입니다. pow() 예시 p..
프로젝트를 하다보면, 소스를 다이렉트로 직접 컴파일(Compile)해야 하는 경우가 종종 있다. 예를 들어 소스를 옮기기 힘든 상황인데 리눅스나 유닉스와 같은 서버에서 vi 편집기 등을 활용하여 직접 프로그램을 수정한 상황에서 직접 컴파일을 한다든지, 아니면 간단한 프로그램을 짜서 뭔가를 알아야 한다든지 IDE(이클립스, IntelliJ)와 같은 프로그램을 쓰지 않고 직접해야 하는 상황이 올 수 있다. Javac Javac는 자바 코드를 컴파일 시켜주는 프로그램으로 커맨드에서 직접 컴파일을 할 수 있다. public class Test { public static void main(String[] args) { System.out.println("Hello World!!"); } } 위와 같은 샘플 클래..
자바(Java)의 경우 컴파일(Compile)이라는 개념이 들어갑니다. 파이썬(Python)과 같은 언어는 컴파일 언어와 다르게 인터프리터 언어로 별도의 컴파일 과정이 없이 소스 코드를 한줄 한줄 읽어가면서 실행을 하게 되지만, 자바의 경우 컴퓨터가 읽기 전에 컴파일 과정이 우선 적용된 후 컴퓨터가 이해를 하는 방식입니다. 컴파일 언어의 장점 컴파일 언어의 장점은 대척점에 있는 인터프리터의 단점과 같습니다. 소스 코드라는 것은 사람이 읽기 쉬운 언어의 모음이며, 컴퓨터의 경우 한줄 한줄 해석을 하다보면 시간이 오래 걸리는 단점이 존재합니다. 컴파일은 바로 사람이 읽기 쉬운 소스 코드를 컴퓨터가 읽기 쉽게 변환해주는 개념입니다. 컴퓨터의 언어도 Language 이기 때문에 결국 통역이라는 과정이 필요하게 ..
내 서버의 아이피(IP)를 몰라서 코딩을 하는 경우는 없겠지만, 간혹 IP를 기반으로 프로그램을 다르게 하는 경우가 있습니다. 이럴 때 사용하는 자바 클래스로 InetAddress가 있는데 이를 통해 내가 현재 사용하는 컴퓨터의 IP를 알 수 있거나, 다른 사이트의 IP를 확인할 수 있습니다. InetAddress InetAddress는 인터넷 프로토콜(Internet Protocol, IP) 주소를 나타냅니다. IP 주소는 UDP 및 TCP와 같은 프로토콜이 구죽되는 하위 수준 프로토콜인 IP에서 사용하는 32bit 또는 128bit의 부호 없는 숫자입니다. INetAddress의 인스턴스는 IP 주소와 가능한 해당 호스트 이름으로 구성됩니다.(호스트 이름으로 구성되었는지 또는 이미 역 호스트 이름 확..
자바를 배우는 초창기에는 문자열의 비교시 ==를 사용하여 예상치 못한 에러가 발생하는 경우가 종종 발생한다. 대개 true로 문제가 없는 경우도 많지만, 간혹 false가 떨어지곤 하는데 이 이유에 대해서 설명해보고자 한다. 자바 예시 String str1 = "삼성전자"; String str2 = "삼성전자"; String str3 = new String("삼성전자"); System.out.println(str1 == str2); System.out.println(str1 == str3); System.out.println(str1.equals(str3)); 위 예시를 해보면, 결과가 아래와 같이 떨어진다. true false true 결과에 대한 원인 str1과 str2는 새로운 객체가 아니기 때문에..
자바(Java)에서 문자열을 자르는 방법으로 substring을 제공하고 있다. substring은 2가지 방식의 인자값을 받고 있으며 방식은 아래와 같다. substring 사용법 String substring(int startIndex); String substring(int startIndex, int endIndex); startIndex는 시작지점의 인덱스 값이고, endIndex는 종료 지점의 인덱스 값이다. 두 방식 모두 return 값으로 문자열(String)이 리턴된다. 사용 예제 public class Main { public static void main(String args[]) { String example = "동해물과 백두산이 마르고 닳도록"; System.out.println..
자바로 파일을 생성하는 방법은 다양하게 많지만 그 중 가장 범용적이고, 성능도 뛰어난 방법을 소개해보고자 한다. 테스트를 위한 String 생성 public static void main(String args[]) throws Exception { List sampleList = new ArrayList(); for(int i = 0; i < 10; i++) { sampleList.add("test-" + i); } } 테스트를 위해서 10번의 루트를 실행하며, test-0 ~ test-9까지 문자열을 생성하고 sampleList 스트링 리스트 변수에 문자열 값들을 저장한다. 파일 생성 메소드 public static boolean createTextFile(String filePath, List sam..