choiDev

고정 헤더 영역

글 제목

메뉴 레이어

choiDev

메뉴 리스트

  • 홈
  • 방명록
  • 자바
  • 자바로 푼 알고리즘
  • 안드로이드
  • 네트워크
  • 컴퓨터 구조
  • 책 리뷰
  • 재테크
  • 취미 회계
  • 개발자의 여행 방식
  • 글 쓰기
  • 분류 전체보기 (170)
    • 스타트업 회고 (0)
    • Network (20)
    • Programming language (29)
      • C 언어 (0)
      • 자바 (12)
      • Kotlin (17)
    • Algorithm (36)
    • Data Structure (10)
    • Android (36)
      • 안드로이드 (Realm) (0)
      • RxJava (0)
    • Backend (18)
    • React (2)
    • IT에 대해 (9)
    • 앱 or 서비스 리뷰 (0)
    • Slack (1)
    • GIT (1)
    • Database (1)
      • MySql (1)

검색 레이어

choiDev

검색 영역

컨텐츠 검색

Programming language/자바

  • [Java- Enum] (Enum or 상수) NullPointerException 방지하기

    2022.08.14 by choiDev

  • (자바) 단방향 해시 함수

    2019.02.01 by choiDev

  • (자바) 클라이언트 소켓 프로그래밍 (Client Socket Programming)

    2019.01.31 by choiDev

  • (자바) SocketAddress 클래스 & NetworkInterface 클래스

    2019.01.31 by choiDev

  • (자바) InetAddress 클래스

    2019.01.31 by choiDev

  • (자바) 람다 표현식 기본적 표현(JAVA8 Lambda expression)

    2019.01.06 by choiDev

  • (자바) Arrays.sort와 Arrays.parallelSort 성능비교 (Arrays)

    2019.01.05 by choiDev

  • 자바 가상 기계(JVM : Java Virtual Machine)

    2018.12.25 by choiDev

[Java- Enum] (Enum or 상수) NullPointerException 방지하기

현업에서 Enum을 사용하다가 NullPointerException에 취약하게 Enum을 사용했던 과거의 저와 몇몇 신입 동료들을 기억하며 기록하려고 글을 작성해 봅니다. [Enum or 상수와 객체(값)을 비교할때 Null을 조심하자] //"Enum일때 문제가 되는 코드" public enum DeviceType { Android, IOS } public static boolean isAndroid(DeviceType userDeviceType){ return userDeviceType.equals(DeviceType.Android) } //"상수일때 문제가 되는 코드" public static String DEVICE_TYPE_ANDROID = "Android"; public static String..

Programming language/자바 2022. 8. 14. 18:17

(자바) 단방향 해시 함수

보통 프로그래머는 아래의 두 가지 중 한가지로 사용자의 패스워드를 저장한다. - 단순 텍스트(plain text) - 단방향 해시 함수(one-way hash function)의 다이제스트 단순 텍스트를 사용하는 것은 현업 에서는 말도 안되는 행위 이므로 단방향 해시 함수를 적용하는 것이좋다. 단방향 해시 함수란?단방향 해시 함수는 수학적인 연산을 통해 원본 메시지를 변환하여 암호화된 메시지인 다이제스트를 생성한다. 원본 메시지를 알면 암호화된 메시지를 구하기는 쉽지만 암호화된 메시지로는 원본 메시지를 구할 수 없어야 하며 이를 '단방향성' 이라고 한다. 단방향 해시 함수의 문제점대부분의 웹 사이트에서는 SHA-256 같은 해시 함수를 사용해 패스워드를 암호화해 저장하고 값을 비교하는 것만으로 충분한 암..

Programming language/자바 2019. 2. 1. 16:16

(자바) 클라이언트 소켓 프로그래밍 (Client Socket Programming)

클라이언트 소켓 프로그래밍 (Client Socket Programming) 소켓 프로그래밍 순서1. 소켓클래스의 생성자를 사용하여 소켓 객체를 만든다.2. 스트림 객체를 생성3. write와 read를 사용하여 메시지를 송수신한다.4. 소켓과 스트림을 닫느다. [Whois 서버에 접속하는 클라이언트 소켓 프로그래밍]import java.io.*; import java.net.Socket; public class WhoisQuery { public static void main(String args[]){ String domainNameToCheck = "abcnews.com"; try{ performWhoisQuery("whois.internic.net",43,domainNameToCheck); }ca..

Programming language/자바 2019. 1. 31. 11:33

(자바) SocketAddress 클래스 & NetworkInterface 클래스

SocketAddress 클래스 & NetworkInterface 클래스SocketAddress 클래스는 소켓에서 사용하는 IP주소와 포트번호를 관리하는 추상클래스이다.SocketAddress클래스는 추상 클래스 이기 때문에 직접 객체를 생성하지 않으며, 보통 하위 InetSocketAddress 클래스를 사용하여 아래와 같이 SocketAddress 클래스의 인스턴스를 생성한다. SocketAddress socketAddress = new InetSocketAddress(host, port); SocketAddress클래스 특징 - SocketAddress 클래스의 인스턴스는 한번 생성하게 되면 변경이 불가능하다. - InetSocketAddress(int port)와 같이 포트번호만 주면, 호스트의 ..

Programming language/자바 2019. 1. 31. 10:54

(자바) InetAddress 클래스

InetAddress 클래스 통신 프로그램은 사실 인터넷이나 통신 규격이 요구하는 프로토콜을 만족시키는 데이터를 만드는 작업이다.InetAddress 클래스는 인터넷 도메인이나 호스트를 IP주소로 전환하는 기능을 한다. InetAddress클래스 특징 - 객체를 생성하면 수정할 수 없다. - InetAddress 클래스는 일반적으로 IPv4 주소를 사용한다. [IP주소 반환 받는 예제]import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.UnknownHostException; public class StringEx..

Programming language/자바 2019. 1. 31. 09:38

(자바) 람다 표현식 기본적 표현(JAVA8 Lambda expression)

자 오늘은 람다 표현식의 간단한 예제를 보면서다음과 같이 람다를 표현할 수 있구나를 알아보겠습니다.바로 시작하겠습니다!​ 우선은 람다식의 작성하는 문법은 다음과 같습니다.​문법(타입 매개변수,..) -> {실행문;}​1. (타입 매개변수,..) 오른 쪽 중괄호 블록을 실행하기 위해 필요한 값을 제공하는 역할을 합니다.매개변수의 이름은 개발자가 임의로 지정 가능합니다.​2. ->매개변수를 이용 해 중괄호를 실행한다는 뜻입니다.​3. {실행문;}왼쪽에 있는 타입 매개변수를 받아 실행되는실행문이 되겠습니다.​위에서는 간단한 문법들을 보셨는데 그럼 람다식의 예제를 보시죠 예제1) 매개변수가 있는 람다표현식 (int temp) -> { System.out.println(temp); } ​예제2) 매개변수가 없는 ..

Programming language/자바 2019. 1. 6. 01:49

(자바) Arrays.sort와 Arrays.parallelSort 성능비교 (Arrays)

안녕하세요 초이입니다.자바 Arrays를 공부하다가 갑자기 sort와 parallelSort의 성능차이가 궁금하여서 검색을 해봤습니다.스택 오버 플로우에서 나온 의견으로는 처리할 요소가 많으면 parallelSort가 빠르고,적은 양이라면 sort가 빠르다고 나와 있었습니다. 그래도 너무 궁금해서 실제 테스트를 진행 했었고 아래에 코드와 시험결과를 포스팅 하겠습니다~! 테스트 코드 import java.util.Arrays; import java.util.Random; public class Array { public static void main(String args[]) { Random random = new Random(); double startTime; double endTime; double ..

Programming language/자바 2019. 1. 5. 23:56

자바 가상 기계(JVM : Java Virtual Machine)

특징 - 실 운영체제를 대신해 자바 프로그램을 실행하는 가상의 운영체제 역할 - JVM은 바이트 코드를 기계어로 변환시키고 실행한다. - JVM은 java.exe 명령어에 의해 구동된다. - JVM은 운영체제에 종속적이다. (각 운영체제에 맞는 JVM 설치가 필요하다.)​JVM 존재 이유 - 운영체제별로 프로그램을 실행 및 관리하는 방법이 다르기에 운영체제 별 개발을 하는것 보다 운영체제와 자바프로그램 사이에 중계하는 JVM을 두어서 어떤 운영체제에서도 실행 되도록 하였다.​자바가 느린이유 - C, C++은 컴파일 단계만 거치고 바로 프로그램을 만들 수 있지만 자바는 바이트코드로 컴파일 후 한번 더 OS에 맞게 실행과정을 거쳐야 하기에 느릴 수 밖에 없다.​자바의 장점​ - Write once, run ..

Programming language/자바 2018. 12. 25. 13:08

추가 정보

인기글

최신글

페이징

이전
1 2
다음
TISTORY
choiDev © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바