IT Study/컴퓨터 기초
-
[CS] 신입 개발자 기술면접 질문 - 네트워크 편IT Study/컴퓨터 기초 2023. 9. 18. 21:49
안녕하세요, Three입니다. 네이버클라우드 캠프를 마치고 취준생이 되며, 기술 면접에 대비하기 위해 CS를 다시 공부하려고 합니다. 함께 하는 동료가 공부법으로 "내 언어로 만들어 기억하기"를 추천하더라고요. 이를 수행하는 과정에 대해 블로그 글로 남겨보려고 합니다 :) 1. 네트워크가 뭐예요? 컴퓨터 네트워크란 컴퓨터 간에 케이블, 전파와 같은 수단을 통해 연결하고 데이터를 주고받을 수 있는 상태를 의미합니다. 그 종류로는 작은 규모의 LAN, 대규모 네트워크인 WAN 그리고 LAN, WAN을 연결한 인터넷이 있습니다. 2. HTTP 프로토콜에 대해 설명해 주세요. HTTP 프로토콜이란 웹 브라우저와 웹 서버가 대화하는 방법을 정한 규칙입니다. 이를 통해 웹 페이지를 요청하고 받아올 수 있습니다. 2..
-
[Java] static(정적)의 의미IT Study/컴퓨터 기초 2023. 4. 21. 17:23
자바를 사용하다 보면 static이라는 키워드를 자주 보는데요. 이러한 static이 의미하는 바를 정확히 짚고 넘어가는 것이 좋을 것 같아, 이번 블로그 글을 작성하게 되었습니다. 1. static이란? static이란 정적(고정된)이라는 의미로, static 키워드가 붙은 멤버 변수나 메서드는 클래스의 인스턴스 생성 없이 사용할 수 있습니다. 즉, 클래스 내부에 정적으로 선언되어 모든 인스턴스가 공유하는 변수나 메서드를 만들 때 사용합니다. 2. static 변수 static 키워드가 붙은 멤버 변수는 객체가 생성되지 않아도 메모리에 할당되어 초기화가 이뤄집니다. static 변수는 클래스 레벨의 변수이기 때문에 객체가 생성되기 전, 미리 메모리에 할당되어 객체의 생성 여부와 상관없이 클래스 이름을 ..
-
[Java] 스트림 (Stream)IT Study/컴퓨터 기초 2023. 4. 21. 12:11
1. 스트림이란? 스트림은 자바 8에서 새롭게 추가된 기능으로, 데이터의 흐름을 추상화합니다. 데이터 흐름을 추상화한다는 것은 어떤 데이터 구조를 다루던 같은 방식으로 다룰 수 있도록 해준다는 것입니다. 자바 8 이전에 컬렉션이나 배열과 같은 데이터 구조를 다룰 때에는 Iterator와 for문, Collectins.sort()와 Arrays.sort()를 사용했습니다. 이처럼 같은 기능의 메서드가 중복되어 정의된 것을 정리하여, 일관성 있는 방식으로 데이터 구조를 다룰 수 있게 해 줍니다. 1-1. 스트림의 특징 (1) 스트림은 일회용입니다. Iterator로 컬렉션의 요소를 모두 읽고 나면 다시 사용할 수 없는 것처럼, 스트림도 한 번 사용하면 다시 사용할 수 없습니다. 그러나 아래와 같이 스트림을 ..
-
[Java] 람다식 (Lambda)IT Study/컴퓨터 기초 2023. 4. 20. 16:07
1. 람다식이란? 람다식은 메서드를 하나의 식으로 표현할 수 있는 기능입니다. 이 기능을 통해 자바는 객체지향언어인 동시에 함수형 언어가 되었습니다. 아래와 같이 Example 클래스에 종속되고, max라는 이름이 있는 메서드는 람다식을 통해 간결하게 나타낼 수 있습니다. // 일반적으로 메서드 생성 시 new Example() { int max(int n, int m) { return n > m ? n : m; } } // 람다식으로 메서드 생성 시 (int n, int m) -> n > m ? n : m 1-1. 함수형 프로그래밍 람다식은 함수형 프로그래밍을 위한 기능입니다. 함수형 프로그래밍은 데이터를 변경하지 않고 함수에 데이터를 전달해 원하는 결과를 도출하는 프로그래밍 방식으로, 입력값이 같으면..
-
[Java] toString() (Feat. 매번 헷갈려..)IT Study/컴퓨터 기초 2023. 4. 15. 18:10
안녕하세요. 다들 편안한 주말 보내고 계신가요.. :) 이번 글에서는 toString() 메서드가 어떤 친구인지 정확하게 정의 내리고, 사용하는 방법까지 알아보도록 하겠습니다. 1. toString()이란? toString 메서드는 자바의 모든 클래스에서 사용할 수 있는 메서드 중 하나입니다. toString은 객체를 대표하는 문자열을 반환합니다. (← 이 개념으로 인해 toString의 사용법이 헷갈리게 되곤 합니다.) 아래의 1-1, 1-2 목차를 통해 정확하게 내용을 파악해보도록 하겠습니다. 1-1. String 클래스의 toString() String 클래스의 toString은 해당 String 객체의 문자열 값을 반환합니다. toString() 메서드를 호출하면, 해당 String 객체에 저장된..
-
[Java] 게터/세터(Getter/Setter)를 사용하는 이유IT Study/컴퓨터 기초 2023. 4. 10. 16:58
1. Getter/Setter 클래스의 멤버 변수를 public으로 선언하면, 해당 멤버 변수는 어디서든 직접 접근이 가능합니다. 그러나 멤버 변수에 직접 접근하는 것은 문제가 될 수 있습니다. ❓ 왜 클래스의 멤버 변수에 직접 접근하는 것이 문제가 될까요? 왜냐하면 클래스의 멤버 변수에 직접 접근한다는 것은 외부에서 멤버 변수의 값을 변경할 수 있다는 의미로, 외부에서 클래스의 멤버 변수에 직접 접근하여 값을 변경하면 해당 클래스는 의도치 않게 동작할 수 있습니다. public이 아닌 *private이라는 키워드로 멤버 변수가 선언되어 있더라도 클래스의 외부에서 접근이 가능하게 되면 해당 클래스 내에 구현이 변경되었을 때 다른 코드에 영향을 줄 수 있습니다. *private : 접근 제한자 중 하나로,..
-
[Java] 스레드 (Thread)IT Study/컴퓨터 기초 2023. 4. 8. 17:47
1. 스레드란? 컴퓨터의 프로그램이 동시 실행될 수 있도록 하는 것을 멀티 스레딩이라고 합니다. 스레드는 실행되는 프로그램에서 개별적인 흐름을 만든 것으로, 프로세스 안에서 실행되는 하나의 실행 흐름입니다. 여러 개의 스레드는 하나의 프로세스에서 동시에 실행될 수 있으며, 서로 공유되는 자원을 이용할 수 있습니다. 1-1. 스레드와 프로세스 구분 스레드 프로세스 정의 프로세스 안에서 실행되는 실행 흐름 중 하나 실행 중인 프로그램 자원 공유 한 프로세스 내 스레드는 메모리 등의 자원 공유 독립적으로 OS에서 자원 할당 받음 종료 프로세스 내 타 스레드가 종료될 때까지 대기 종료 시, OS에서 자원 회수 실행 흐름 (순차적) 한 프로세스 내 스레드는 서로 다른 실행 경로를 가지나, 실행 시간 중첩 독립적 ..
-
[Java] 열거형 (Enum)IT Study/컴퓨터 기초 2023. 4. 6. 15:21
1. 열거형이란? 열거형은 서로 연관된 상수들의 집합을 나타내는 것으로, 여러 개의 상수 중 하나를 선택해야 하는 경우 유용하게 사용할 수 있습니다. 우리는 열거형을 통해 상수의 이름만으로 해당 상수가 어떤 값을 나타내는지 확인할 수 있기 때문에 가독성이 높아집니다. 2. 열거형의 선언 2-1. 간단한 열거형 선언 enum 키워드를 사용하여, 상수를 쉼표로 구분하여 선언합니다. (열거형 상수는 대문자로 작성하는 것을 권장합니다.) enum 열거형명 { 상수명1, 상수명2, 상수명3... } enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public class Main { public static void ma..