목록분류 전체보기 (100)
nathan_H
What is the Internet? 컴퓨터, 핸드폰, 스마트 Tv 등등 지금 시대는 인터넷이 사용 안되는 곳이 거의 없고, 인터넷을 통해 많은 사람들이 서로 연결되고 소통을 할 수 있다. 그렇다면 과연 '인터넷'은 무엇이고 어떻게 동작하고 수 많은 데이터는 어떻게 주고 받게 되는 것 일까?? 인터넷 인터넷은 Network of networks로 수 많은 Network가 연결된 하나의 망이라고 보면 됨. 여기서 Network는 다양한 Protocols을 통해 Message을 주고 받으면서 Control되게 되어 있음. 프로토콜 프로토콜은 네트워크에서만 사용하는 용어가 아니라 범용적으로 사용하는 용어인데, 인간도 암묵적으로 하나의 프로토콜을 가지고 소통을 하고 있음. Person 1: 안녕~ Person..
벌써 2020 절반이 끝나고 7월의 첫 주가 지나갔다. 작년과는 달리 올해는 '취업'이라는 카테고리가 들어오게 되면서, 상반기에 많은 생각과 시행착오가 있었다. 방향성 작년 새로운 분야로 공부를 시작했는데, 누구나 그렇듯 처음에는 의욕과 열정이 넘쳐 욕심을 부리기 마련이다. 욕심과 열정은 나쁜 것은 아니지만 제대로 된 자기 객관화와 방향성이 없다면 그때부터 문제가 발현되기 시작한다. 나는 처음에 데이터 분야 쪽에 관심이 생겨 소프트웨어 공부를 시작했다. 하지만 데이터 쪽에도 데이터 과학, 데이터 분석, 데이터 엔지니어, 데이터 사이언스와 같이 다양한 직군이 존재했고, 직군 이외에도 이미지, 자연어, 시계열, 음성 등 도메인도 정말 다양하기 때문에 방향성을 잘 정하는 것(모든 것을 잘할 수 없기 때문에)이..
최근 알고리즘 문제를 풀면서 벽에 부딪히는 느낌이 많이 들었는데, 그 중 Dynamic Programming이라는 유형의 문제는 쉽게 감이 잘 잡히지 않는 유형 중 하나였다. 그럼에도 불구하고 Dynamic Programming은 중요한 알고리즘 디자인 패러다임이기에 한 번 제대로 이해하고 문제도 풀어볼 가치가 있다. Dynamic Programming 사실 Dynamic Programming 이름만 가지고는 다른 "이분 탐색", "분할 정복", "너비 우선 탐색"과 같이 무엇을 의미하는 잘 다가오지 않는데, Dynamic Programming이라는 말은 최적화 문제를 연구하는 수학 이론에서 왔으며 전산학 전반에서 일반적으로 사용하는 Dynamic, 혹은 Programming이란 단어와는 아무런 관련이 ..
인터페이스란? 인터페이스의 의미 자체는 아래와 같다. - 전기 신호의 변환(變換)으로 중앙 처리 장치와 그 주변 장치를 서로 잇는 부분. 또는, 그 접속 장치. - 키보드나 디스플레이 등처럼 사람과 컴퓨터를 연결하는 장치. - 소프트웨어끼리 접촉·공통되는 부분. 순화어는 `접속'. 즉 인터페이스의 의미를 한 줄로 요약하면 "접속하는 장치" 이다. 그리고 이 의미는 자바에서도 그대로 적용된다. 자바 인터페이스의 개념과 역할 개념 개발 코드와 객체가 서로 통신하는 접점, 객체의 사용 방법을 정의한 타입. 역할 개발 코드가 객체에 종속되지 않도록 방지 개발 코드 변경 없이 리턴값 또는 실행 내용을 다양하게 구현 (다형성) 개발자들 간의 하나의 코드 규약 하나의 프로그램을 제작할 때에는 "설계"와 "구현"을 하..
시작하기 알고리즘을 풀다보면 그래프 자료구조를 사용하는 경우가 많고, 그래프 자료구조를 사용하는 문제의 상당수는 DFS, BFS을 구현해 문제를 해결하는 경우가 많다. 그리고 문제의 난이도가 올라갈수록 단순한 DFS, BFS가 아닌 다양한 형태로 변형한 DFS, BFS을 요구한다. 그래서 DFS, BFS 개념과 몇가지 유형을 통해 한번 DFS, BFS을 뿌시고자 한다. Graph 자료형 그래프 자료형의 경우 선형 자료구조나 트리 자료구조로 표현하기 어려운 多:多의 관계 를 가지는 원소들을 표현하기 위한 자료구조로 객체의 정점과 객체를 연결하는 간선의 집합이다. 그래프 객체를 나타내는 정점(vertex)과 객체를 연결하는 간선(edge)의 집합 𝐺 = (𝑉,𝐸) − 𝑉는 그래프에 있는 정점들의 집합 − 𝐸..
본 내용은 백기선님의 더 자바 강의 듣고 정리한 내용입니다. 바이트 코드 조작 지난 포스팅에서 JVM 구조에서 가장 중요한 요소로 바이트 코드라고 언급 했는데, 자바 코드는 결국 바이트 코드로 변환이 된 후에 바이트 코드를 읽어 실행이 된다. 즉 최종적으로 바이트 코드 내용으로 실행이 되기 때문에 바이트 코드를 조작한다면, 내가 작성한 코드와 다른 결과가 나올 수 있다. 바이트 코드 : JVM이 실행하는 명령어 집합 코드 커버리지 코드 커버리지 테스트 수행 결과를 정량적인 수치를 나타나는 방법으로 소스 코드 중 테스트를 통해 실행된 코드의 비율을 뜻함 실제 코드 커버리지가 실행되는 과정은 바이트 코드을 통해 커버리지 측정이 이루어진다. 바이트코드에서 테스트가 진행되어야 하는 전체 코드 라인을 카운팅 한 ..
JVM 이란? Java Virtual Machine의 약자로 자바 바이트 코드를 OS에 특화된 코드로 변환하여 실행 해주는 역할. 즉, JVM 위에서 동작하기 위해서는 자바 바이트코드가 필요함. 자바 바이트 코드는 개발자에 의해서 작성된 자바 코드를 자바 컴파일러로 변환 된 코드를 말함 바이트 코드를 실행하는 "표준"이자 "구현체" JVM 표준 스택에 따라 다양한 밴더가 제공이 되고 있음 오라클, 아마존 등등 JVM은 OS에 특회된 코드로 변환해 실행을 해주기 때문에 특정 플랫폼에 종속적인 특징을 가지고 있음 이것의 의미는 자바에서는 JVM에 의해서 실행이 되기 때문에 자바는 운영체제에 독립적이라고 할 수 있음 JRE, JDK, Java The Secret of Java- JDK, JRE, JVM dif..
상속 https://blog.itthis.me/57 상속이란? 현실 세계 관점 부모가 자식을 선택해서 물려주는 행위 객체 지향 프로그래밍 관점 자식(하위, 파생) 클래스가 부모(상위) 클래스의 멤버를 물려받는 것 자식이 "부모를 선택"해 물려받음 상속 대상 : 부모의 필드와 메소드 활용 상속의 효과 부모 클래스 "재사용"해서 자식 클래스에서 빠르게 개발 가능 중복 코드 줄임 유지 보수 편리성 객체 다형성 구현 상속 대상 제한 부모 클래스의 private 접근 제한을 갖는 필드와 메소드는 제외 부모 클래스가 다른 패키지에 존재하는 경우, default 접근 제한을 갖는 필드와 메소드도 제외 클래스 상속 자식 클래스가 상속할 부모 클래스를 "지정"하는 키워드 자식이 부모를 지정! 자바의 상속은 다중 상속을 ..