부트캠프(12일차)

성준혁·2022년 11월 15일
0
post-thumbnail

오늘은 부트캠프 12일차이다. 오늘은 오전에는 자바의 이론 강의를 듣고 오후에는 알고리즘에 대한 이론을 듣고 저녁에는 알고리즘을 프로그래머스 0단계에서 부터 차근차근 풀어 나아가고 있는 중이다. 알고리즘은 파이썬으로 풀고 있는데 중요한 건 기본 문법을 확실하게 공부해야 겠다는 생각이 많이 들었다. 아직은 코드 줄도 길고 약간 노가다(?)성이 있게 풀긴 하지만 처음부터 짧고 가독성이 있게 풀기에는 부족한 점이 많다고 생각하고 일단 풀고나서 다음 비슷한 유형이 나오면 예전보다 더 좋은 코드로 문제를 풀어야 겠다.

오늘 배운 것

1. 날짜와 시간 다루기

-LocalDate / LocalTime / LocaDateTime을 사용해서 현재 시간을 표현하고 싶다면 .now()를 사용하면 된다.
-특정한 시간이나 날짜를 숫자를 지정해서 보고 싶거나 변수로 설정하고 싶다고 하면 .of라는 메서드를 이용해서 사용하면 된다.
-여기서 날짜와 시간의 형식을 바꾸고 싶다면 DateTimeFormatter를 사용하면 된다.
-나만의 스타일일 바꾸고 싶다면 DateTimeFormatter의 .ofPattern()을 사용하면 된다.
-Period를 사용하면 기간을 구할 수 있다.

2. 컬렉션

-Java에서 자료구조를 표현하는 인터페이스를 의미한다. 그리고 구체적인 자료구조의 종류 리스트(List), 스택(Stack), 큐(Queue), 셋(Set), 맵(Map)이란 것들이 사실 컬렉션이란 인터페이스를 구현하고 있다.
-우리가 기본적으로 정의되어 있는 것이 아니라 우리가 직접 자료구조를 만든다고 컬렉션 인터페이스 상속해서 만들 수도 있다.

3. 컬렉션 프레임워크

-다수의 데이터를 다루기 위한 자료구조를 표현하고 사용하는 클래스의 집합을 의미.
ㄱ. List : 순서가 있는 데이터의 입랍이며 데이터의 중복을 허용한다.
ex> ArrayList, LinkedList, Stack 등
ㄴ. Set : 순서를 유지하지 않는 데이터의 집합이며 데이터의 중복을 허용하지 않는다.
ex> HashSet, TreeSet 등
ㄷ. Map : key와 value의 쌍으로 이루어진 데이터의 집합이다. 순서는 유지되지 않으며 키는 중복을 허용되지 않고 값은 중복을 허용한다.
ex> HashMap, TreeMap 등
ㄹ. Stack : 마지막에 넣은 데이터를 먼저 꺼내는 자료구조이다. LIFO(Last In First Out)
ex> Stack, ArrayDeque 등
ㅁ. Queue : 먼저 넣은 데이터를 먼저 꺼내는 자료구조이다. FIFO(First In First Out)
ex> Queue, ArrayDeque 등

4. 제네릭스

-다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능을 의미
-사용하는 이유는 객체의 타입을 컴파일 시에 체크하기 때문에 안정성이 높아진다.
-의조하지 ㅇ낳은 타입의 객체가 저장되는 것을 막고 잘못된 형변환을 막을 수 있기 때문이다.

5. 자주사용 되는 타입인자 약어

-T == Type / E == Element / K == Key / V == Value / N == Number / == Result

6. 람다

-함수를 좀 더 쉽게 표현하고 곧바로 표현하자 이런 의미이다.
-반환타입 메소드이름 없이 매개변수 선언하여 만들 수 있다.

7. 스트림

-하나의 데이터의 흐름이다.
-컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다.
-스트림을 활용해서 필터링, 데이터 변경, 다른 타입이나 자료구조로 변환할 수 있다.

8. 네트워킹

-두 대 이상의 컴퓨터를 케이블 또는 인터넷으로 연결하여 네트워크를 구성하는 것을 말한다.
ㄱ. 서버 : 서비스를 제공하는 컴퓨터, 요청에 응답하는 컴퓨터
ㄴ. 클라이언트 : 서비스를 사용하게 되는 컴퓨터, 요청을 하는 컴퓨터
ㄷ. IP 주소 : 컴퓨터를 구별하는 데 사용되는 고유한 값
ㄹ. URL : 인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근 할 수 있는 주소를 표현하기 위한 것
ㅁ. 포트번호 : 통신에 사용되는 서버의 프로젝트
ㅂ. API : 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어 할 수 있게 해주는 인터페이스를 의미한다.
client-server 관점에서 API는 요청과 응답의 형식에 대한 약속이다.

0개의 댓글