분류 전체보기

개발 도서/스프링 입문을 위한 자바 객체지향의 원리와 이해

[스프링 입문을 위한 자바 객체지향의 원리와 이해] 4장 자바가 확장한 객체지향

4장의 중요한 내용들을 정리했다. abstract 키워드, 추상 클래스, 추상 메서드 추상 메서드는 일반 메서드 앞에 abstract 키워드를 붙여 사용한다. 추상 메서드는 선언부는 있지만 구현부는 없어야한다. abstract class Animal{ abstract public void say(); } class Mouse extends Animal{ @Override public void say(){ System.out.println("찍찍"); } } class Cat extends Animal{ @Override public void say(){ System.out.println("야옹"); } } public class Main{ public static void main(String[] arg..

개발 도서/스프링 입문을 위한 자바 객체지향의 원리와 이해

[스프링 입문을 위한 자바 객체지향의 원리와 이해] 3장 자바와 객체지향

3장의 내용 중 중요한 내용들을 정리했다. 클래스와 객체의 개념 흔히 얘기하는 붕어빵과 붕어빵틀처럼 생산수단과 생산물에 초점을 맞추는 것이 중요한게 아니다. 클래스는 분류에 대한 개념이고, 객체는 실체이다. 따라서 올바른 예시를 들자면, 사람과 강호동 같은? class Book{ public String name; public int price; } public class Main{ public static void main(String[] args){ Book springBook = new Book(); } } 정의한 클래스대로 만들어져 힙 메모리에 올라간 객체를 "클래스의 인스턴스"라고 한다. 위 코드에서 new Book()으로 힙에 올린 객체를 Book클래스의 인스턴스라고 하고, 인스턴스 변수 sp..

자바

[Java] GC, Garbage Collector

자바를 사용하면 메모리 해제를 가비지 컬렉터가 해준다고 알고 있긴하지만 정확히 언제, 어떻게 되는지에 대해서까지 알지는 못했다. 힙에 올라간 인스턴스를 해제하는 거긴할텐데... 어떻게 안쓰는지 확인하고 해제되는지 알아보도록 하자. Garbage 판단 GC는 객체를 유효한 참조가 존재하면 Reachable, 참조가 없다면 Unreachable로 구분한다. 이 상태는 Root Set(Stack, Method, Native Stack)과 참조 관계로 판단한다. 방금 설명한 Root Set과 Reachable 유무로 Garbage Collector의 작동원리를 설명하면 1. Root Set으로부터 Heap 영역으로의 참조가 있는 Reachable 객체를 찾는다 > Mark 2. UnReachable객체를 Hea..

Computer Science/Network

HTTP다운 사용을 위한 HTTP Method사용법

HTTP의 URI로 리소스를, HTTP Method로 리소스에 대한 행위를 나타내기에 이해하기 쉬운 장점을 극대화한 REST API와 같은 아키텍쳐를 이해하기 위해서 HTTP Method에 대해 알아본다. HTTP Request Method 서버의 CRUD기능을 구현할 때 CREATE는 POST, READ는 GET, UPDATE는 PUT or PATCH, DELETE는 DELETE를 사용한다. HTTP Request 구조자체는 GET을 제외하고는 동일하다. 서버에서 동일한 구조에서 데이터를 Method에 따라 달리 이용하는 방법을 정의하기 위해 Method가 존재한다고 할 수있다. GET URI로 지정된 리소스에서 데이터를 서버에 요청한다. 쿼리 스트링으로 URI에 원하는 정보를 요청한다.(바디 없음) ..

Computer Science/Network

HTTP Protocol에 대해

많이 들어보고 나름 많이 써보기도 한 것 같은 HTTP 자세히 알아보기 위해 공부했고, 내용을 정리한다. HTTP란? HTML문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. 웹에서 이루어지는 모든 데이터 교환의 기초이며, 애플리케이션 계층의 클라이언트 - 서버 프로토콜이기도 하다. HTTP 요청 및 응답의 올바른 형식은 클라이언트와 서버에서 사용하는 HTTP 프로토콜(또는 HTTP 사양)의 버전에 따라 다르기 때문에 요청은 Reqeust Line, 응답은 Status Line에 명시해야한다. 읽기 간단하다 HTTP는 쉽게 읽을 수 있게 고안되었고 프레임별로 캡슐화하여 간결함을 유지한다. 읽기 간편한 HTTP의 장점에 따라 REST 아키텍쳐의 설게로 이어진다. 확장 가능하다 클라이언트와 서버..

알고리즘/DFS, BFS

백준 1068 트리 Java

https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 풀이 1. 이중 리스트에 자식 노드 넣기 2. 루트 노드에서 시작해 리프 노드 세기 3. DFS 순회하며 다음 순회할 노드가 잘린 노드면 건너뛰기 코드 public class Pro1068 { static List a = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader bf =..

Computer Science/Network

Statefull/Stateless Service, REST API의 세션관리

클라이언트 - 서버 아키텍쳐 추상적인 수준에서 소프트웨어를 클라이언트 측과 서버 측의 두 부분으로 나누는 소프트웨어 설계 아키텍쳐이다. 클라이언트 : 사용자 컴퓨터에서 사용자와 상호 작용을 처리하는 UI를 제공 서버 : 클라이언트로부터 요청을 수신하고 적절한 데이터를 응답 소프트웨어의 역할을 두 개로 나눴기 때문에 서버는 비즈니스 로직과 데이터들에, 클라이언트는 사용자에게 UI를 제공하는 것에 집중 할 수 있고, 서버는 UI를 신경 안써도 되고, 클라이언트는 복잡한 데이터를 건드릴 필요가 없게 된다. 클라이언트와 서버로 나눴기 때문에 서로 통신을 해야하는데 여기에 필요한 것이 통신 프로토콜이고 Statefull, Stateless로 나뉜다. Statefull Service 클라이언트가 서버에 요청을 보내..

알고리즘/정렬

백준 2910 빈도 정렬 Java

https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 정렬 기준 1. 나온 횟수 > HashMap 2. 나온 횟수가 같다면 먼저 나온 순 > LinkedHashMap, 먼저 등장 순서 보장 코드 public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader bf = new BufferedReader(new InputStrea..

비오베베
'분류 전체보기' 카테고리의 글 목록 (13 Page)