Programming 90

[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

선형 리스트 (Linear List)

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

알고리즘의 개념

-알고리즘의 개념 알고리즘이란 '어떤 문제를 해결해 가는 논리적인 과정'으로 정의할 수 있다. -자료구조와 알고리즘의 관계 자료구조와 알고리즘은 데이터와 그 데이터를 처리하는 방법의 관계라고 볼 수 있다. 밀접하고, 상호 의존적인 관계 -알고리즘 표현법 1. 일반 언어 표현 2. 순서도 표현 3. 의사코드(Pseudo Code) 표현 -알고리즘 성능 측정 1. 시간복잡도 : 알고리즘을 통해 결과값을 도출해내는 시간을 기준으로 성능을 측정하는 방법 -알고리즘 성능 표기 1. 빅-오 표기법 : O(1), O(log n), O(n), O(n log n), O(n^2), O(n^3), O(2^n) 등 * 자료구조와 효율적인 알고리즘을 공부해야 하는 이유 : 데이터가 많아질수록 효율적인 알고리즘을 사용해야 많은 ..

자료구조의 개념

- 자료구조의 개념 자료구조란 컴퓨터 프로그래밍 언어에서 효율적인 자료(데이터)의 형태를 말한다. 현대 사회에서는 많은 정보와 데이터가 발생한다. 이를 저장하고 처리할 때 단순한 방식으로 저장한다면 효율성이 떨어진다. 데이터를 잘 정리해서 저장해 놓는다면 데이터를 찾을 때 훨씬 빠르고 효율적인 결과를 도출할 수 있다. - 자료구조의 종류 1. 정수, 실수, 문자, 문자열 등의 데이터 형 2. 리스트, 스택, 큐 등의 선형 자료구조 3. 트리와 그래프의 비선형 자료구조 4. 순차 파일, 색인 파일, 직접 파일 등의 파일 자료구조

[Spring] @Entity @Id @GeneratedValue @Column 코드 뜯기

Spring 공부를 하다보면 @ 골뱅이라 불리는 Annotation을 심심치 않게, 아니 자주 볼 수 있습니다. 성격상 이것에 대해 대충 넘긴다면 개발에 활용할 수 없을 것 같다는 생각이 들었고, 예제 코드를 작성해서 작성의도, 작성의미 등을 하나 하나 자세히 뜯어보는 포스팅을 올려보려고 합니다. 오늘 뜯어볼 코드는 @Entity, @Id, @GeneratedValue, @Column 입니다. import javax.persistence.*; import java.io.Serializable; @Entity public class User implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(nullabl..

Programming/Spring 2021.07.02

[JAVA STUDY] 3주차 : JAVA 연산자, 자바 연산자 종류

목표 자바가 제공하는 다양한 연산자에 대한 학습 학습내용 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof (객체 타입 확인) 대입 연산자 assignment(=) operator 화살표(->) 연산자 삼항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 산술 연산자 산술 연산자는 수학적인 계산에 사용되는 연산자 class Main { public static void main(String[] args) { // result 의 값은 3 int result = 1 + 2; System.out.println(result); // result 의 값은 2 result = result - 1; System.out.println(result); // resul..

Programming/Java 2021.06.07

[JAVA STUDY] 2주차 : Java 프리미티브 타입(Primitive type), 변수(Variable), 배열(Array)

목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법 학습내용 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 기본형에는 모두 8개의 자료형(타입)이 있으며, 크게 논리형, 문자형, 정수형, 실수형 4가지로 구분된다. 논리형 - True / False 중 하나를 값으로 가지며, 조건식과 논리적 계산에 활용한다. 문자형 - 문자를 저장하는데 사용하며, 변수 당 하나의 문자만 저장할 수 있다. 정수형 - 정수의 값을 저장하는데 사용된다. 주로 int와 long을 ..

Programming/Java 2021.06.05

[JAVA STUDY] 1주차 : JVM, 컴파일, 바이트 코드, JIT 컴파일러, JVM 구성요소, JDK, JRE

목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해 학습내용 JVM이란 무엇인가 컴파일하는 방법 및 원리 실행하는 방법 및 원리 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가 JAVA Virtual Machine, 자바 가상 머신의 약자를 따서 줄여 부르는 용어이다. 여기서 가상 머신이란 프로그램을 실행하기 위해 물리적 머신과 유사한 머신을 소프트웨어로 구현한 것이다. 또한, JVM은 스택 기반의 가상 머신이다. JVM의 역할 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 JAVA API와 함께 실행 JAVA와 OS사이에서의 중개자 역할로 OS에 구애받지 않고 재사용 가능(Write Once, Run Any..

Programming/Java 2021.05.26

[코딩도장-파이썬] 핵심 정리 2

1. 문자열 메서드 메서드 설명 replace('바꿀문자열', '새문자열') 문자열 안의 문자열을 다른 문자열로 바꿈 translate(테이블) 문자열 안의 문자를 다른 문자로 바꿈, str.maketrans('바꿀문자', '새문자')로 변환 테이블을 만들어야 함 split() split('기준문자열') 공백을 기준으로 문자열을 분리하여 리스트로 만듦 기준 문자열을 지정하면 기준 문자열로 문자열을 분리 join(리스트) 구분자 문자열과 문자열 리스트(튜플)의 요소를 연결하여 문자열로 만듦 upper() lower() upper는 문자열의 문자를 대문자로 바꾸고, lower는 소문자로 바꿈 lstrip(), rstrip(), strip() lstrip('삭제할문자들') rstrip('삭제할문자들') str..

Programming/Python 2020.11.27