본문 바로가기

분류 전체보기

(108)
2020.8.17일자 수업 : ArrayList, LinkedList 실습 - ArrayList 구현하기 git/ bitcamp-20200713/ bitcamp-java-basic/ src/ main/ java com.eomcs.corelib.ex04.MyLinkedList14~21.java 4단계 : 인스턴스를 생성할 때 배열의 초기 크기를 설정할 수 있도록 생성자와 초기 크기를 지정하지 않는 기본 생성자를 구현한다.를 구현한다. 배열 크기를 지정할 때 기본 크기보다는 큰 값이 되도록 생성자를 구현한다. 초기 크기를 1로 할 경우에는 크기가 안늘려지기 때문이다. 배열의 기본 크기는 직접 숫자로 지정하지 말고 상수를 사용하여 지정한다. package com.eomcs.algorithm.data_structure.array; public class MyArrayList { ..
2020.8.14일자 수업 : String, Wrapper, ArrayList 구현 실습 String git/ eomcs-java-basic/ src/ main/ java com.eomcs.corelib.ex02.Exam0110~180.java 문자열 객체 생성 방법 1. String str = new String("abc"); heap에 String 인스턴스를 생성한다. 내용의 동일 여부를 확인하지 않고 생성할 때마다 새로운 인스턴스를 생성한다. 2. String str = "abc"; heap이 아니라 string constant pool (상수풀) 메모리 영역에 String 인스턴스를 생성한다. 내용물이 같으면 기존 인스턴스의 주소를 리턴한다. 즉 메모리 절약을 위해 중복 데이터를 갖는 인스턴스를 생성하지 않는다. 그리고 만들어진 인스턴스는 JVM이 끝날 때까지 메모리에 유지된다. 3...
2020.8.12일자 수업 : 오버로딩, 오버라이딩, 캡슐화 오버로딩 git/ eomcs-java-basic/ src/main/java com.eomcs.oop.ex06.b 오버로딩: 파라미터의 형식은 다르지만 같은 기능을 수행하는 메서드에 대해 같은 이름을 부여함으로써 프로그래밍의 일관성을 제공하기 위한 문법 C언어에서는 같은 이름에 각각 다른 파라미터를 준 function를 선언할 수 없다. 즉, 오버로딩이 불가능하다. 따라서 같은 기능의 function이라도 이름을 조금씩 달리 해야 한다. plusi(int, int) / plusf(float, float) 더보기 function prototype - 메서드를 선언하기 전에 개략적으로 소개하는 명령어 -> ex) int plus(int, int) method signature - 메서드의 선언부 자바에서는 같..
2020.8.11일자 수업 : 상속과 다형적 변수 미니 프로젝트 동향 살피기 객체지향의 가장 중요한 점 => 클래스 사이의 관계 파악하기 더보기 App (조건문 블록으로 분류) -> App (멤버 추가, 조회), App1(프로젝트 추가, 조회), App2(작업 추가, 조회) 각 클래스마다 main() 1개씩 -> App (의 main()안으로 합침) 메서드가 너무 길어져서 관리하기 힘들어짐 -> App 를 main(), addMember(), listMember(), addProject(), listProejct(), addTask(), listTask(), prompt() 메서드로 분류 -> App 안에 내장 클래스(nested class) 추가 Member, Project, Task -> 데이터 타입 새로 정의 -> App, MemberHandler..
2020.8.10일자 수업 : 클래스와 메서드 활용 생성자 활용 /git/eomcs-java-basic/src/main/java com.eomcs.oop.ex04.Exam0111~250.jav String 클래스를 통해 생성자 활용하기 - 문자열 리터럴을 파라미터로 하는 생성자 String s1 = new String("Hello"); - char 배열을 파라미터로 하는 생성자 char[] chars = new char[] {'H', 'e', 'l', 'l', 'o'}; String s2 = new String(chars); - byte 배열을 파라미터로 하는 생성자 byte[] bytes = { (byte)0x48, // H (byte)0x65, // e (byte)0x6c, // l (byte)0x6c, // l (byte)0x6f // o }; St..
cs50 5 : 인터넷과 네트워크 5강 TCP와 IP TCP와 IP로 알려진 인터넷 프로토콜을 통해 인터넷에서 한 지점에서 다른 지점으로 어떻게 데이터가 도달할 건지 정하고 수신 장치가 정보를 받게끔 보장하거나 받은 정보로 무엇을 해야 할 지 보장할 수 있다. TCP 전송 제어 프로토콜(Transmission Control Protocol) 한 컴퓨터가 다른 컴퓨터로 데이터를 보낼 때 송신 컴퓨터는 커다란 하나의 패킷을 작은 패킷으로 나눈다. TCP는 데이터를 순서 있는 패킷들로 분해하는 일을 한다. TCP는 각 세그먼트 패킷에 대해 순서에 맞게 번호를 매긴다. 수신 컴퓨터가 이 세그먼트 패킷들을 받으면 올바른 순서로 패킷들을 재조립한다. 패킷 번호를 할당 하는 것 외에도 TCP는 데이터에 포트 번호를 할당합니다. 해당 숫자는 데이터가 어떤 유형의 인터넷 ..
cs50 5 : 인터넷과 네트워크 4강 라우터 라우터는 출발지에서 목적지까지, 혹은 송신 장치에서 수신 장치까지 정보를 보내는 일을 한다. 패킷은 0과 1을 포함하는 디지털 정보를 담은 봉투이다. TCP - 전송 제어 프로토콜 이 기술을 통해 데이터가 잘 전송될 확률을 높일 수 있다. 왜냐하면 인터넷은 불안정하기 떄문에 무조건 맞는 방향으로 간다고 보장하지 못하기 때문이다. 인터넷상에서 실제로 정보가 라우터에 의해 버려지기도 한다. 데이터가 버려질 확률을 낮추기 위해 송신 컴퓨터는 데이터를 4개의 세그먼트 나누어 각 봉투에 정보를 더 추가한다. '4개 중 첫번째', '4개 중 두번째', '4개 중 세번째', '4개 중 네번 째' 이런식으로. 인터넷에 있는 서버들은 다양한 서비스를 제공한다. 스카이프나 이메일, 저장소 서비스 등 다양한 일을 할 수 있..
cs50 5 : 인터넷과 네트워크 3강 DNS와 DHCP DNS: 도메인 이름 시스템(Domain Name System) 으로, 웹 브라우저 주소창에 치는 URL 텍스트를 IP주소로 변환. URL(= 도메인 주소)은 IP주소보다도 사람이 읽기 쉽고 기억하기 쉬운 웹 주소이다. 따라서 DNS는 식별자 역할을 하는 도메인을 그에 대응하는 IP 주소로 바꾼다. 웹브라우저에 URL을 치면, 컴퓨터는 DNS 서버에 접속하여 어떤 IP주소와 대응하는 지에 관한 정보를 찾는다. DNS 서버는 여러개가 있으므로 도메인 이름과 IP주소의 대응 관계에 변화가 생길 때 바뀐 정보를 모든 DNS 서버와 공유해야한다. 설사 그것이 시간이 걸리더라도 말이다. DNS에서 관리하는 도메인은 트리 형태의 계층 구조를 이룬다. 기본 최상위 도메인을 TLD라고 부르며 우리가 익숙한 웹사이트 주..