전체 글 182

[JAVA] 오버로딩(Overloading)

남궁성님의 자바의 정석을 기반으로 작성했습니다. - 오버로딩 (Overloading) : 과적하다. 한 클래스 안에 같은 이름의 메서드를 여러개 작성한 것. 대표적인 예로 Java의 println() 메서드가 있습니다. 아래의 코드처럼 println()이라는 이름으로 다양한 데이터 형에 따른 println() 로직처리를 할 수 있게 됩니다. void println() void println(boolean x) void println(int x) void println(float x) void println(double x) void println(String x) void println(Object x) void println(char x) void println(char[] x) void println..

Programming/Java 2021.10.11

[JAVA] 자바의 메서드(Method)

남궁성님의 자바의 정석 강의를 기반으로 작성했습니다. - 메서드란 작업단위로 문장을 묶어놓은 것 - 메서드와 함수의 차이 * 메서드는 반드시 클래스 안에 들어가있어야 하지만 함수는 클래스에 독립적입니다. 근본적으로 똑같긴 합니다. - 메서드의 장점 * 코드의 중복을 줄일 수 있습니다. * 코드의 관리가 쉽습니다. * 코드를 재사용할 수 있습니다. * 코드가 간결해서 이해가 쉬워집니다. - 메서드 작성 * 반복적으로 수행되는 여러 문장을 메서드로 작성 * 하나의 메서드는 한 가지 기능만 수행하도록 작성 - 메서드 구성 : 선언부 + 구현부 반환타입 메서드이름 (타입변수명, 타입변수명, ...) // 선언부 { // 메서드 호출시 수행될 코드 // 구현부 } int add (int a, int b) { in..

Programming/Java 2021.10.08

[JAVA] 클래스 변수와 인스턴스 변수

남궁성님의 자바의 정석 강의를 기반으로 작성했습니다. - 선언 위치 * 클래스 영역 : 인스턴스 변수, 클래스 변수 * 메서드 영역 : 지역 변수 - 클래스 변수 : 공통적인 사항 - 인스턴스 변수 : 개별적인 사항 예. 카드에서 공통적인 사항은 카드의 폭, 높이, 두께 등, 개별적인 사항은 카드의 문양, 숫자 등이 있습니다. 이를 코드화하면 아래와 같습니다. Class Card { // 개별 속성 : 인스턴스 변수 String kind; // 카드의 무늬 int number; // 카드의 숫자 // 공통 속성 : 클래스 변수 static int width; // 폭 static int height; // 높이 } * 위 코드를 사용하는 방법 Card c = new Card(); // 객체를 생성 c.k..

Programming/Java 2021.10.08

[JAVA] 자바의 클래스

남궁성님의 자바의 정석을 기반으로 작성했습니다. - 클래스의 정의 * 설계도 * 데이터 + 함수 * 사용자 정의 타입 1. 변수 : 하나의 데이터를 저장할 수 있는 공간 2. 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간 3. 구조체 : 서로 관련된 여러 데이터 (종류 관계 X)를 하나로 저장할 수 있는 공간 4. 클래스 : 구조체 + 함수, 즉 서로 관련있는 데이터 변수들과 관련있는 함수들의 묶음 // 비객체지향적인 코드 int hour = 12; int minute = 25; int second = 30; // 객체지향적인 코드 class Time { int hour; int minute; int second; } Time t = new Time(); t.hour = 12; t.mi..

Programming/Java 2021.10.08

[JAVA] 자바의 객체지향

남궁성님의 자바의 정석을 기반으로 합니다. * 객체지향 언어의 등장 배경 - 소프트웨어의 빠른 변화에 대응하지 못함 -> 해결책으로 객체지향언어 도입(절차형 -> 객체지향형) * 객체지향 언어의 특징 - 코드의 재사용성이 높다. - 유지보수가 용이하다. - 중복 코드 제거 * 핵심 개념 - 캡슐화, 추상화, 다형성, 정보은닉, 상속 * 클래스와 객체 - 클래스 : 객체를 정의해 놓은 것, 객체를 생성하는데 사용 - 객체 : 실제로 존재하는 것, 사물 또는 개념 - 속성(변수)과 기능(메서드)으로 이루어져있다. 예) 클래스-제품 설계도 , 객체-제품 / 클래스-붕어빵 기계, 객체-붕어빵 // 속성 예제 class Tv{ String color; // 색깔 boolean power; // 전원상태 int c..

Programming/Java 2021.10.08

[JAVA] 자바의 정석

* 자바를 배우는 이유, 자바의 특징 - 객체지향 개념을 이해하기 수월합니다. - 메모리 사용 후 반환해줘야 하는데, 자바의 가비지 콜렉터(GC)가 메모리를 알아서 정리해줍니다. - 멀티 쓰레드 지원 : 하나의 프로그램에서 여러가지 동작을 수행가능하게 해줍니다. 예) 채팅하면서 파일 전송 가능 - 라이브러리가 다양합니다. - 운영체제에 독립적입니다. 즉, 운영체제에 상관없이 프로그램이 실행가능합니다. 그 이유는 자바가상머신(JVM) 덕분입니다. 이 가상머신은 가상 컴퓨터를 의미하며, 일반 애플리케이션이 운영체제 위에서 동작하는 반면에 자바는 운영체제 위에 JVM이라는 가상 환경에서 동작하기 때문에 운영체제에 독립적일 수 있습니다. (Write Once, Run Anywhere) * 자바 API? - 자바..

Programming/Java 2021.10.05

생활코딩 웹 제작 스터디 [Cookie]

-쿠키? 쿠키는 서버가 사용자의 웹 브라우저에게 전달하는 작은 데이터 조각. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송합니다. https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies HTTP 쿠키 - HTTP | MDN HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데 developer.mozilla.org -쿠키의 목적 1. 세션 관리(Session management) : 서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보 관리 2. 개인화(Pers..

Web 2021.09.29

생활코딩 웹 제작 스터디 [WEB2 - HTTP]

-HTTP (Hyper Text Transfer Protocol) Request (요청) Response (응답) 컨텐츠를 주고받기 위한 메시지이며 메시지는 요청과 응답으로 이루어져 있다. 웹 브라우저는 요청하기 전에 Header와 -HTTP Request Message * Request Line : 첫 번째 줄을 의미하며, 데이터 요청 방식(GET, POST)과 요청 경로, 통신 버전 정보들을 담고있다. * User-Agent : Web browser 정보 * Accept-Encoding : 웹 브라우저와 웹 서버가 통신시 응답하는 데이터 양이 많을 때 압축해서 전송하면 네트워크의 자원을 아낄 수 있다. 어떤 압축 방식을 지원하는지 적혀있는 부분 (gzip, deflate, br 등등..) * Cont..

Web 2021.09.29

선형 리스트 (Linear List)

-선형 리스트의 개념 선형 리스트는 데이터를 일정한 순서로 나열한 자료구조로, 순차 리스트라고도 한다. 선형 리스트는 입력 순서대로 저장하는 데이터에 적당하다. 예를 들면, 좋아하는 프로그래밍 언어 종류, 연락이 많이 온 친구 목록 등이 있다. 다양한 방법으로 구현할 수 있으나, 가장 기본적인 것은 배열(Array)을 이용하는 것이다. -선형 리스트의 원리 1. 데이터 삽입 : 빈칸 확보 -> 자리 이동 -> 데이터 삽입 예. a - b - c 선형 리스트에 d를 b와 c 사이에 삽입? -> a - b - c - * (빈칸 확보) -> a - b - * - c (자리 이동) -> a - b - d - c (데이터 삽입) 2. 데이터 삭제 : 데이터 삭제 -> 자리 이동 -> 빈칸 제거 예. a - b -..