프로그래밍 언어
-
[스터디 14주차] 제네릭프로그래밍 언어/JAVA 2021. 7. 24. 16:52
더보기 목표: 자바의 제네릭에 대해 학습 1. 제네릭 사용법 제네릭은 Java 5부터 추가된 타입으로 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 해준다. 제네릭은 클래스와 인터페이스, 메소드를 정의할 때 타입을 파라미터로 사용할 수 있도록 한다. 그러면 제네릭을 사용하면 어떠한 장점이 있을까? - 컴파일 시 강한 타입 체크를 할 수 있다. 컴파일 시에 미리 타입을 강하게 체크해 사전에 에러를 방지해준다. - 타입 변환을 제거한다. 제네릭을 사용한 경우와 사용하지 않은 경우를 코드를 보며 이해해보자. List list = new ArrayList(); list.add("hello"); String str = (String) list.get(0); 제네릭을 사용하지 않은 위 코드를..
-
[스터디 13주차] I/O프로그래밍 언어/JAVA 2021. 7. 20. 17:51
더보기 목표: 자바의 Input과 Ontput에 대해 학습 1. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 스트림(stream)은 어느 한 쪽에서 다른 쪽으로 데이터를 전달할수 있도록 해주는 연결 통로같은 것이다. 스트림은 단방향통신만 가능하기때문에 입력과 출력을 동시에 처리하기 위해서는 입력을 위한 스트림과 출력을 위한 스트림, 2개의 스트림이 있어야한다. 채널(Channel)은 스트림과 달리 양방향으로 입력과 출력이 가능하다. 버퍼(buffer)는 byte, char, int 등 기본 데이터 타입을 저장할 수 있는 저장소로서, 배열과 마찬가지로 제한된 크기에 순서대로 데이터를 저장한다. 버퍼는 데이터를 저장하기 위한 것이지만 실제로 버퍼가 사용되는 것은 ..
-
딕셔너리 모듈 (defaultdict, Counter)프로그래밍 언어/Python 2021. 7. 15. 12:36
오늘은 파이썬 알고리즘 인터뷰 책으로 코딩테스트 준비를 하던 중에 알고있지 못했던 좋은 정보를 정리하려고 한다. 1) defaultdict defaultdict의 형태는 우리가 평소에 쓰던 딕셔너리와 같다. 차이점은 딕셔너리는 딕셔너리 안에 존재하지 않은 키에 대한 값(value)를 출력한다거나 접근할 때 KeyError 메시지가 발생한다. 하지만, defaultdict객체를 사용하게 되면 딕셔너리 내에 존재하지 않는 키를 조회하면 디폴트 값을 기준으로 해당 키에 대한 딕셔너리 아이템을 생성해준다. (defaultdict을 사용하기 위해서는 collections를 import해줘야한다.) 위와 같이 C라는 key에 value를 주지 않았어도 KeyError가 나오지 않고 default값인 0이 출력되는 ..
-
[스터디 12주차] 멀티쓰레드 프로그래밍프로그래밍 언어/JAVA 2021. 7. 14. 13:48
더보기 목표: 자바의 멀티쓰레드 프로그래밍에 대해 학습 0. 들어가기 전 오늘의 큰 주제인 멀티쓰레드는 무엇일까? 멀티쓰레드를 알아보기 전에 멀티태스킹(multitasking)이라는 개념을 알아두는 것이 좋다. 멀티태스킹은 두 가지 이상의 작업을 동시에 처리하는 것으로 예를 들어 우리가 웹 브라우저를 통해 서칭을 하면서 뮤직 플레이어를 노래를 들을 수도 있고 PC카카오톡에서 알림도 받을 수 있다. 위의 예시는 정확히 말하면 멀티태스킹 중에 멀티프로세스라는 표현이 더 맞을 수 있다. 그러면 다른 예시를 알아보자. 요즘은 잘 보기 힘들지만 브라우저를 통해 블로그에 들어가면 글을 보는 것과 함께 BGM, 음악이 함께 재생되는 것이 있었다. 혹은 카카오톡같은 메신저 애플리케이션은 메시지를 주고받을 뿐만 아니라 ..
-
[이클립스] javadoc 만들기프로그래밍 언어/JAVA 2021. 7. 11. 20:57
오늘은 애노테이션을 배우던 중, @Documented의 사용여부가 javadoc과 관련되어 있어 직접 javadoc을 만들어 보았다. javadoc을 만드는 법을 정리하여 모르는 사람들을 이 글을 통해 알고가면 좋을 것 같다. ① 상단 메뉴에서 File- Export로 들어간다. ② 다음과 같은 창이 뜨면 java폴더를 클릭하면 javadoc이 있는 것을 확인 할 수 있다. javadoc을 클릭하고 next버튼을 누른다. ③ 그러면 아래와 같은 창이 나오고 문서를 만들 폴더와 javadoc.exe를 선택해준 뒤 Next버튼을 누른다. ④ 아래의 창에서는 설정할 것이 없어 건드리지 말고 Next버튼을 눌러 다음으로 이동한다. ⑤ Next버튼을 눌러 나온 창에서는 한글 깨짐 방지를 위해 VM options에..
-
[스터디 11주차] Enum프로그래밍 언어/JAVA 2021. 7. 10. 22:03
더보기 목표: 자바의 열거형에 대해 학습 1. enum 정의하는 방법 먼저, enum이 무엇인지부터 알아보자. enum enumerated type의 줄임말로 서로 관련된 상수를 편리하게 선언하기 위한 것으로 상수를 여러 개 정의할 때 사용한다. 기존에 상수를 사용하면서 발생했던 문제를 개선하고자 JDK 1.5부터 추가된 기능으로 타입까지 비교가 가능하다. 그러면 이러한 enum은 왜 만들어졌을까? enum을 사용하지 않고 상수를 관리하는 코드를 봐보자. 아래의 코드는 enum 없이 기존의 public static final을 이용하여 상수를 선언하는 것이다. public class NoEnum { public static final int KangBaekHo = 10; public static fina..
-
[스터디 10주차] 애노테이션 (annotation)프로그래밍 언어/JAVA 2021. 7. 5. 15:02
더보기 목표: 자바의 열거형에 대해 학습자바의 애노테이션에 대해 학습 1. 애노테이션 (annotation) 애노테이션(annotation)이란 무엇일까? 애노테이션은 JAVA5부터 추가된 요소로 사전적 의미로는 주석을 의미한다. 하지만 자바에서는 단순 주석이 아닌 클래스에 특수한 의미를 부여하거나 기능을 주입하기 위한 메타데이터라고 볼 수 있다. 이런 어노테이션은 인터페이스 일종으로 @를 사용하여 선언한다. 애노테이션은 JDK에서 기본적으로 제공하는 것과 다른 프로그램에서 제공하는 것들이 있는데, JDK에서 제공하는 표준 애너테이션은 주로 컴파일러를 위한 것으로 컴파일러에게 유용한 정보를 제공한다. 더보기 JDK에서 제공하는 애너테이션은 'java.lang.annotation' 패키지에 포함되어 있다...
-
[스터디 9주차] JAVA 예외처리프로그래밍 언어/JAVA 2021. 6. 30. 14:29
더보기 목표: 자바의 예외 처리에 대해 학습 1. Exception과 Error의 차이는? 에러(Error)는 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것이다. 에러는 JVM 실행에 문제가 생겼다는 것이므로 개발자가 프로그램 코드에 어떠한 처리를 통해 해결할 수 없다. 예외(exception)는 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 상의 오류를 의미한다. 예외에는 일반 예외와 실행 예외가 있다. 일반 예외는 컴파일 과정에서 예외 처리 코드가 있는지 검사하는 예외로 예외 처리 코드가 없다면 컴파일 오류가 발생한다. 실행 예외는 컴파일 과정에서 예외 처리 코드를 검사하지 않는 예외이다. 일반 예외와 실행 예외 둘 다 프로그램 실행 시..