전체 글

·Language/Java
오버로딩과 오버라이딩은 무엇일까?      오버로딩 (Overloading) --오버로딩은하나의 클래스 내부에 같은 이름의 메서드를 여러 개 정의한 것을 의미한다.  오버로딩 조건메서드 이름이 같아야 한다.매개변수의 개수 or 타입 or 순서가 달라야 한다.반환 타입 또한 다르게 정의할 수 있다. (다만 반환 타입만 다르게 정의한 것은 오버로딩이 아니다.) class Calculator { // 두 개의 정수를 더하는 메서드 public int add(int a, int b) { return a + b; } // 세 개의 정수를 더하는 메서드 (매개변수 개수 다름) public int add(int a, int b, int c) { return a + ..
·Language/Java
생성자는 무엇이며 어떻게 사용될까?      생성자 (Constructor) --생성자는객체를 생성할 때 호출되는 특별한 메서드를 의미한다.(객체 생성과 동시에 호출되는 메서드)주로 객체가 생성될 때 필드(인스턴스 변수)를 초기화하거나,객체를 초기 상태로 설정하는 데 사용된다.  생성자 규칙생성자의 이름은 해당 클래스의 이름과 동일해야 한다.생성자는 반환 타입이 없으며 return 값 또한 없다. (void 자체도 사용하지 않는다.)객체가 생성될 때 자동으로 호출된다.생성자 또한 오버로딩이 가능하다. (하나의 클래스에 여러 개의 생성자 정의 가능) 예시 코드class Card { String name; int age; Card() { // 매개변수가 없는 생성자 (기본 생성자) ..
·Language/Java
클래스, 객체, 인스턴스는 무슨 차이가 있을까?      클래스 (Class)와 객체 (Object) --클래스는객체를 생성하기 위한 기본 틀을 정의해 놓은 것이다.즉, 객체의 설계도(틀)다.class Car { String color; String model; int maxSpeed = 200; void drive() { System.out.println("Let's go!!!"); }}  객체는클래스에 정의된 내용대로 완성하여 메모리에 생성(적재)된 것이다.즉, 클래스에 정의된 설계도를 가지고 생성한 실체다.Car myCar = new Car(); // Car 클래스의 객체 생성myCar.color = "Black"; // 객체의 속성 정의myCar...
·Language/Java
배열에 사용할 수 있는 메서드들은 무엇이 있을까?      필요한 패키지 --import java.util.Arrays;--    배열 출력 --1차 배열 출력Arrays.toString(배열이름)int[] arr = {1, 3, 5, 7, 9};System.out.println(Arrays.toString(arr));// [1, 3, 5, 7, 9]  다차원 배열 출력Arrays.deepToString(배열이름)int[][] arr = {{1, 3, 5, 7}, {0, 2, 4, 6}};System.out.println(Arrays.deepToString(arr));// [[1, 3, 5, 7], [0, 2, 4, 6]]/*만약 toString(arr)를 사용했다면?[[I@3934vb32c3], [I@..
·Language/Java
배열은 무엇이며, 어떻게 사용할까?      배열 --배열은같은 타입의 여러 변수들을 하나로 묶어 관리하는 공간이다. 기본적인 배열 생성하기 (값은 할당x)타입[] 배열이름 = new 타입[배열크기];// 또는타입 배열이름[] = new 타입[배열크기];일반적으로 첫 번째 형식을 많이 사용한다.int[] arr; // 배열 선언 (아직 생성하지 않아 메모리에 할당되지 않은 단계 / 사용 불가)arr = new int[5]; // 배열 생성, 배열 크기는 5 (실제 메모리에 할당 / 사용 가능)// 또는int[] i = new int[5]; //선언과 동시에 생성참고배열을 생성하면 크기 변경이 불가능하다.변경하고 싶다면 새로 배열을 생성해서 기본 배열의 값을 새로운 배열에 옮겨줘야 한다.  배열 생성 후..
·CS/운영체제
파일 시스템은 무엇일까?       파일 할당 방법 --운영체제는 파일과 디렉터리를 "블록(block)" 단위로 읽고 쓴다.즉, 하나의 파일이 보조기억장치에 저장될 때는 하나 이상의 블록에 걸쳐 저장된다. 하드 디스크에서 사용하는 가장 작은 저장 단위는 "섹터"이지만,운영체제는 하나 이상의 섹터를 블록이라는 단위로 묶은 다음블록 단위로 파일과 디렉터리를 관리한다.(파일 시스템이 모든 섹터를 관리하기에는 개수가 너무 많고 크기도 작기 때문이다.) 위 그림처럼하드 디스크에는 여러 블록들이 존재하고블록 안에 적힌 번호는 블록의 위치를 식별하는 주소라고 생각하면 된다.  파일을 보조기억장치에 할당하는 방법 종류오늘날까지 사용되는 방식은 "불연속 할당"이다.  연속 할당 (Contiguous Allocation)..
·AWS
갑자기 EC2 인스턴스에 배포한 서버가 다운되었는데 이유가 무엇일까?      상황 --전날까지만 해도 정상 동작하던 서버가 갑자기 접속이 불가능해졌다. 1. 초입을 담당하는 로드밸런서(ELB)를 먼저 확인 ELB에서 전체적인 상황을 보기 위해 "리소스 맵"으로 이동하여 확인한 사진으로현재 최종 목적지인 EC2의 인스턴스에서 "Request timed out"으로 연결이 불가능하다는 것을 알았다.Request timed out은ELB가 인스턴스(대상)와 연결을 시도했으나 응답이 없어서 타임아웃이 발생했다는 의미다.   2. EC2 인스턴스 상태 확인 해당 인스턴스의 상태검사에서 "1/2개 검사 통과" 상태를 확인할 수 있었다.인스턴스의 상태 검사 종류1. 시스템 상태 검사 (System Status Ch..
·Language/Java
조건문과 반복문은 어떻게 사용할까?      조건문 --조건문은명시한 조건이 true 또는 false에 따라 명령어(코드) 실행 여부를 결정하는 문법이다.  대표적인 조건문 종류if문, else if문switch문  if문명시한 조건식이 true라면 해당 블록에 존재하는 명령어들을 수행하고false라면 그냥 무시하고 다음 코드로 넘어간다. if(조건식) { 조건이 참(ture)일 때 수행할 명령어}if(a > 10) { System.out.println("a는 10초과"); // a는 10보다 크면 해당 명령어 수행}if(a > 10) { System.out.println("a는 10초과");} else { System.out.println("a는 10이하"); // a는 10보..