프로그래밍/Java
-
보안 소켓프로그래밍/Java 2021. 4. 4. 22:49
보안 통신 와이파이를 사용하게되면 단말기와 무선 공유기 사이에 패킷이 전송된다. 해커가 설치한 와이파이 혹은 보안에 취약한 와이파이를 사용하게 되면 해당 공유기를 통해 통신하는 모든 데이터가 해커에게 노출된다. 스누핑(snooping) - 네트워크상에서 남의 정보를 염탐하여 불법으로 가로채는 행위. 소프트웨어 프로그램(스누퍼)을 이용하여 원격으로 다른 컴퓨터의 정보를 엿볼 수 있어, 개인적인 메신저 내용, 로그인 정보, 전자 우편 등의 정보를 몰래 획득한다. 반면, 네트워크 트래픽을 분석하기 위해 사용되기도 한다. 사례 AT&T는 자사 비밀룸에 설치된 데이터 마이닝 장비로 패킷을 복사하여 자사 고객의 모든 인터넷 트래픽에 대한 접근을 미국 국가안보국에 제공했다. 영국 정보통신본부는 세계의 전화 및 인터넷..
-
URL과 URI프로그래밍/Java 2021. 2. 15. 09:02
호스트는 인터넷이 연결된 컴퓨터이다. 이 호스트는 인터넷 주소(Internet address) 혹은 IP 주소라고 불리는 최소 하나의 고유한 숫자에 의해서 식별된다. 이 호스트에는 HTML 문서나 파일이 있을 수가 있는데 이러한 리소스의 위치를 식별하는데 사용하는 것이 URL(Uniform Resource Locator)이다. URL은 통합 리소스 식별자(URI, Uniform Resource Identifier)의 가장 널리 사용되는 종류 중 하나이다. 이제부터 URL 클래스와 URI에 대해서 알아보자. URL 클래스만 사용하면 원하는 데이터를 쉽게 얻을 수 있다. 이 URL 클래스는 자바 프로그램이 특정 위치로부터 데이터를 가져오는 가장 쉬운 방법을 제공한다. 이 클래스 내부의 프로토콜이나 서버와 통..
-
가비지 컬렉션 (Garbage collection)프로그래밍/Java 2020. 10. 19. 16:30
Q. Garbage collection란? 가비지(Garbage): 더이상 의미없는 데이터 컬렉션(collection): 더이상 의미없는 데이터를 정리한다. 즉, 가비지 컬렉션은 더 이상 의미 없는 데이터의 정리, 메모리를 정리 한다는 의미이다. Garbage collection은 JVM 힙 메모리 정리 알고리즘이다. JVM은 힙 메모리에 객체를 생성한다. 힙 메모리 내에서 더 이상 사용되지 않는 객체는 새로운 객체로 재할당될 수 있도록 정리시키는 과정이다. 일반적으로 객체가 다른 객체에 의해 더 이상 참조되지 않을 때, 그 객체는 정리 대상이다. Q. Garbage collector란? 말 그대로 Garbage collection을 수행하는 담당자이다. JVM에는 Garbage collection 알고..
-
함수형 프로그래밍 설계 -1프로그래밍/Java 2017. 6. 29. 00:14
Java에서 Kotlin으로 넘어가야하는 시점에서 함수형 프로그래밍이란 무엇인지 공부를 시작해보려고 한다. 사실 음식도 모르고 먹을때 보다 알고 먹으면 더 맛있듯이 프로그래밍 언어도 알고 사용하면 더 재밌다. 그래서 일단은 Java8 공부하면서 의식의 흐름을 담아보려한다. Lambda란 도대체 무엇인가? Lambda란 그리스 문자(Greek Alphabet)로 Λ, λ를 지칭한다. 들어갈 (입) 모양의 한자처럼 생겼다. 수학 분야에서 사용되고 있고 함수를 표현할 때 사용된다고 한다. f(x)의 f같은 의미인 것 같다. (추측) Lambda Expression 람다 함수, 람다식 같은 표현이다. 프로그래밍 언어 중에서도 익명함수(Anonymous Function)을 의미한다. 나는 막연히 Java에서만 있..
-
Java Collection프로그래밍/Java 2015. 3. 21. 22:18
Java Collections API 1. Java Collections 종류다음 Java Collections API에서 제공하는 Set타입이다. 이는 insert/access할 때, big O notation에 따라 차이가 존재한다.java.util.EnumSetjava.util.HashSetjava.util.LinkedHashSetjava.util.TreeSet 1) Hash Set HashSet은 HashMap을 구현하고 있다. 순서 없이 저장한다. 2) LinkedHashSet 넣는 순서대로 순서를 유지한다는 점에서 HashSet과 다르다. 넣은 뒤로 순서를 바꿀 수 없다. 3) TreeSet Collections.sort()로 순서를 정렬할 수 있다. 2. Iterator 1) Set elem..
-
오버로딩(method overloading) vs 오버라이딩(overriding)프로그래밍/Java 2014. 7. 30. 00:34
메서드 오버로딩(method overloading) > 메서드 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야한다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 매서드를 여러 개 정의하는 것을 매서드 오버로딩(method overloading) 또는 간단히 오버로딩(overloading)이라 한다. > 메서드 오버로딩의 조건 1. 매서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성..
-
[펌]JAVA STACK(스택) 정리프로그래밍/Java 2014. 7. 12. 01:40
Java 스택(Stack) 정리 1. 스택(Stack)의 개요 스택(Stack)은 사전적으로 '더미', '쌓아 올림' 이라는 의미를 가진다. '더미'란 '많은 물건이 한데 모여 쌓인 큰 덩어리'를 의미한다. 스택(Stack)은 데이터를 쌓아올리는 형태로 저장하여 추출할때는 맨 위에 있는 데이터를 먼저 꺼내는 형태이기 때문에 제일 마지막에 저장한 데이터를 제일 먼저 꺼내는 후입선출(LIFO - Last In First Out) 형태의 자료구조이다. 스택(Stack)은 가장 마지막의 데이터의 위치에 대해 삽입이나 삭제가 발생하므로, 이러한 구조에 사용될 때 간단하며, 더욱 효율적이고 쉽게 사용이 가능하다. 가장 최근에 입력된 데이터를 top 이라고 하며 스택은 top에서만 삽입, 삭제, 읽기 동작이 발생할 ..