전체 글 180

[네트워크] 1. 네트워크의 큰 그림

1️⃣ 네트워크의 기본 구조네트워크는 노드와 간선으로 이루어진 자료구조로, [그래프] 형태를 띔[네트워크 토폴리지] : 네트워크 상에서 노드와 노드 사이의 연결 구조 ex) 망형, 트리형, 링형, 성형, 버스형(선형)[호스트]: 네트워크 가장자리에 위치하면서, 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종 수신하는 노드 ex) 노트북이 구글에 접속했다면, 노트북과 구글의 서버 컴퓨터가 각각의 호스트 역할을 한 것임중간 노드는 정보를 원하는 수신지까지 안정적으로 전송하는 역할을 함. ex) 스위치,라우터,공유기◾️ LAN과 WAN전세계에는 여러 개의 LAN이 있고 WAN을 통해 LAN간의 통신을 가능하게함[LAN]: Local Area Network로 근거리 네트워크. ex) 공유기를 통해 모든 네..

[C#] 알아보기

기존의 절차적 프로그래밍 언어(C언어)와 달리 객체지향 프로그래밍 언어(Java,Python,C++,C#)은 코드의 재사용성에 무게를 두었다.그만큼 오늘날 프로그램의 규모가 커졌다는 것을 의미한다. 여러 사람이 같은 프로그램을 만들더라도 전체의 영향을 최소화하면서 반복적으로 작업해야할 부분과 그렇지 않은 부분을 분리해 관리하도록 만든것임C# 프로그래밍 언어  마이크로소프트에서 개발된 언어로 초기에는 자바와 비슷한 구조로 MS종속적인 환경으로 주목받지 못했지만 .NET Core를 오픈소스로 공개해서 게임, 모바일 등 여러 플랫폼에서 응용가능해짐장점: 사소한 실수도 컴파일오류를 띄워 에러가 적음, 가비지 컬렉터로 메모리 정리해줌단점: 다중 상속 안됨,윈도우에서만(Core말고 프레임워크는) 개발 가능,C와 C..

백앤드/C# 2024.11.20

[JAVA] Collections Framework

Collections Framework 선택 과정Map과 Collection 인터페이스 중 선택 1-1. Collection 선택 시 사용 목적에 따라 List와 Set중 선택사용 목적에 따라 Map, List, Set 각각의 하위 구현체를 선택 2-1. Map: HashMap, LinkedHashMap, HashTable, TreeMap 2-2. List: LinkedList, ArrayList 2-3. Set: TreeSet, HashSet1. [Collection]Set: 집합 개념, 순서 X, 데이터 중복 X(SortedSet) TreeSet데이터가 정렬된 상태로 저장되는 이진 탐색 트리(binary search tree)의 형태로 요소를 저장한다.이진 탐색 트리 중에 성능을 향상시킨 레드-블랙 ..

카테고리 없음 2024.10.18

[JAVA] 추상 클래스와 인터페이스의 차이

1. [추상 클래스]개념: abstract 키워드로 선언된 클래스*추상 메서드를 최소 한 개 이상 가지고 abstract로 선언된 클래스최소 한 개의 추상 메서드를 포함하는 경우 반드시 추상 클래스로 선언하여야 한다.*추상 메서드가 없어도 abstract로 선언한 클래스그러나 추상 메서드가 하나도 없는 경우라도 추상 클래스로 선언할 수 있다.*추상 클래스의 구현서브 클래스에서 슈퍼 클래스의 모든 추상 메서드를 오버라이딩하여 실행가능한 코드로 구현한다.추상 클래스의 목적객체(인스턴스)를 생성하기 위함이 아니며, 상속을 위한 부모 클래스로 활용하기 위한 것이다.여러 클래스들의 공통된 부분을 추상화(추상 메서드) 하여 상속받는 클래스에게 구현을 강제화하기 위한 것이다. (메서드의 동작을 구현하는 자식 클래스로..

백앤드/JAVA 2024.10.18

[JAVA] final, finally, finalize()

1. [final 키워드는 변경 불가능하게 한다]적용 대상효과기본형 변수(Primitive)해당 변수 값 변경 불가참조형 변수(Reference)*참조 변수가 힙 내 다른 객체를 가르키도록 변경 불가메서드해당 메서드 오버라이드 불가클래스해당 클래스 상속 불가 *참조 변수가 힙 내 다른 객체를 가르키도록 변경 불가public class FinalExample { public static void main(String[] args) { final StringBuilder sb = new StringBuilder("Hello"); sb.append(" World"); // 객체의 상태는 변경 가능 (문자열 추가) // sb = new StringBui..

백앤드/JAVA 2024.10.18

[JAVA] Wrapper Class는 기본 자료형을 객체로 변환한다

1. [Wrapper Class 사용 용도]*기본 자료형을 객체 타입으로 변환해야하는 경우 기본 타입(Primitive Type)Wrapper ClassbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean*박싱 방향: ->*언박싱 방향: *기본 자료형을 객체 타입으로 변환해야하는 경우 ▪️ 객체로 저장해야할 경우 ▪️ 매개변수로 객체가 요구될 경우 (ex. *제네릭, Collecion 타입) ▪️ 객체간 비교가 필요할 경우 *제네릭 : 모든 종류의 타입을 다룰 수 있도록 일반화된 타입 매개변수로 클래스나 메서드를 선언하는 기법* 오토 박싱, 오토 언박싱: JDK 1.5부터는 자바 컴파일러가 알아서 자동 처..

백앤드/JAVA 2024.10.18

[JAVA] 객체지향 프로그래밍 (OOP,Object Oriented Programming)

1. [객체 지향 프로그래밍이란 프로그램을 객체 단위로 구성하고, 각 객체  간 관계 및 상호작용을 프로그램으로 나타낸 것 이다]장점코드의 재사용성이 높다. - 누군가의 코드를 갖다쓰기도, 상속하기도, 확장하기도 쉽다.유지 보수가 쉽다. - 해당 부분만 수정하면 된다.대형 프로젝트에 적합하다. - 업무 분담이 쉽다.즉, 강한 응집력(단일 책임)과 약한 결합력(약한 의존)을 가진다.단점처리 속도가 느리다. - 객체 간 정보 교환이 모두 메시지 교환을 통해 일어나므로 많은 오버헤드가 발생한다. 하지만 하드웨어의 발전으로 어느 정도 해소된 단점이다.객체가 많으면 용량이 커진다.설계시 많은 노력과 시간이 든다.2. [객체 지향의 특징 (APIE)- 4가지 ]Abstraction(추상화) : 필요한 정보만 표현함..

백앤드/JAVA 2024.10.18