분류 전체보기 465

[Java] 자바 Map 종류와 좋은 블로그

자바 관련 좋은 블로그 소개 https://beomseok95.tistory.com/category/JAVA 자바 Map의 종류에 대해 (Hash, Tree, Linked) 그리고 해쉬테이블까지 https://web-inf.tistory.com/44 https://coding-factory.tistory.com/557 https://velog.io/@adam2/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%ED%95%B4%EC%8B%9C-%ED%85%8C%EC%9D%B4%EB%B8%94 (위의 velog에는 해싱, 그리고 해쉬테이블에 대한 깊은 내용이 나와있다. ) https://wakestand.tistory.com/190 사실 위에 소개된 3개의 블로그 중에서 이 코딩팩토리라는 블..

Java lang 2021.01.04

[Java] 자바 헷갈리는 내용 - 접근제어자와 final 클래스와 메서드

접근제어자를 별도로 설정하지 않는다면 접근제어자가 없는 변수, 메소드는 default 접근제어자가 되어 해당 패키지 내에서만 접근이 가능하다. 접근제어자가 protected로 설정되었다면 protected가 붙은 변수, 메소드는 동일 패키지내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근이 가능하다. final 이라는 예약어가 붙은 클래스와 메소드는 상속과 오버라이드가 막히게 된다.

Java lang 2021.01.04

[Java] 자바8 함수형 인터페이스에 관한 자세한 설명

자바8 함수형 인터페이스에 관한 자세한 설명(상당히 자세하다...) https://beomseok95.tistory.com/277?category=1064782 Functional Interface는 Object 클래스의 메서드를 제외하고 단 하나의 메서드만 가지고 있는 인터페이스를 의미합니다 람다식은 기본적으로 "파라미 터부 -> {몸통부}"의 형태를 띠며 평가 결과로 Functional Interface의 인스턴스를 생성할 수 있습니다, Stream 인터페이스는 람다식과 결합하여 List를 일괄적으로 처리할 수 있도록 도와준다. 대표적인 메서드로 filter, map, forEach 등이 있다. 이 API를 이용하면..

Java lang 2021.01.04

[Java] Junit과 테스트 주도 개발(TDD) 그리고 리팩토링

Junit 공식 사이트 https://junit.org/junit5/ Junit이란? 자바의 단위 테스트 프레임워크 https://nesoy.github.io/articles/2017-02/JUnit http://www.nextree.co.kr/p11104/ http://junit.sourceforge.net/javadoc/org/junit/Assert.html Junit과 테스트 주도 개발 방법론 (TDD) https://galid1.tistory.com/329?category=763585 https://galid1.tistory.com/783?category=763585 TDD의 개념적 원칙 (FIRST 원칙 ) https://galid1.tistory.com/783?category=763585 TD..

Java lang 2021.01.04

[Java] 자바 방어적 복사와 불변객체 생성

자바에서 등장하는 방어적 복사와 불변객체 생성에 대한 내용을 알아보도록 하자. 용어가 어렵지만 사실 내용은 그다지 어려운 내용은 아니다. 방어적 복사는 즉 매개변수의 유효성을 검사하기 전에 방어적 복사본을 만들고, 이 복사본으로 유효성을 검사한 점에 주목하자. 순서가 부자연스러워 보이겠지만 반드시 이렇게 작성해야 한다. 멀티스레딩 환경이라면 원본 객체의 유효성을 검사한 후 복사본을 만드는 그 찰나의 취약한 순간에 다른 스레드가 원본 객체를 수정할 위험이 있기 때문이다. 방어적 복사를 매개변수 유효성 검사 전에 수행하면 이런 위험에서 해방될 수 있다. 컴퓨터 보안 커뮤니티에서는 이를 검사시점/사용시점(time of check/time of use) 공격 혹은 영어 표기를 줄여서 TOCTOU 공격이라 한다...

Java lang 2021.01.04

바이트코드와 바이너리 코드

C언어는 컴파일러에 의해 소스파일(*.c)이 목적파일(*.obj)로 변환될때 바이너리 파일, 즉 0과 1로 이루어진 코드로 변환된다. 즉, 컴파일 후에 이미 컴퓨터가 이해할 수 있는 이진코드로 변환되는 것이다. 목적파일은 기본적으로 컴퓨터가 이해할 수 있는 바이너리 코드(이진 코드)의 형태이지만 실행될 수는 없다. 그 이유는 완전한 기계어(CPU에서 사용하는 명령어 집합)이 아니기 때문이다. 변환된 목적파일은 링커에 의해 실행 가능한 실행파일(*.exe)로 변환될 때 함수나 헤더 파일 등의 실제 메모리 주소를 코드에 반영하는 과정에서 일부 주소값이 변경되는데, 이러한 과정을 거쳐야 비로소 컴퓨터가 바로 실행 할 수 있는 100% 기계어가 될 수 있다. 결론적으로 목적파일은 바이너리 코드이지만 컴퓨터가 바..

개발 정보 2021.01.03
반응형