전체 글
자바스크립트 기본 문법
변수 선언 자바스크립트에는 변수를 선언할때 var, const, let 세가지 방식이 있다 간단하게 var는 예전 방식 const 변수의 변경을 막아주는 방식 let 변수의 변경을 허용하는 방식 var는 사용하지 말 것 var는 자바스크립트의 오래된 것, let같은 것이지만 var을 쓰면 let, const로 구분할 수 없고 코드를 읽으면서 의미를 얻을 수 없음. var a = 3 a = 2 //가능 const b = 3 b = 2 //오류 발생 let c = 3 c = 2 //가능 배열 const nonsense = [1, 2, "hello", false, null, true] console.log(nonsense) // [1, 2, "hello", false, null, true] //접근하는 방법 ..
Spring MVC, DI, IOC
MVC란? MVC는 Model-View-Controller의 약자이며, 어플리케이션을 구성하는 요소를 역할에 따라 세 가지 모듈로 나누어 구분한 패턴이다. 1. Model(모델) 어플리케이션의 데이터이며, 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트이다. 사용자가 이용하려는 모든 데이터를 가지고 있어야하며, View(뷰) 또는 Controller(컨트롤러)에 대해 어떠한 정보도 알 수 없어야 한다. 변경이 일어나면 처리 방법을 구현해야 한다. 2. View(뷰) 시각적인 UI요소를 지칭하는 용어다 Model(모델)이 가지고 있는 데이터를 저장하면 안된다. Model(모델)이나 Controller(컨트롤러)에 대한 정보를 알면 안되며 단순히 표시를 해주는 역할을 가지고 있다. 변경이 일어나면 처리 방..
Querydsl 공부 <환경 설정 및 기본 엔티티 설정>
Querydsl공부를 하며 잊지않게 기록하는 게시글 입니다. 프로젝트 생성 후 Gradle 전체 설정 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.6.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { comp..
파이썬 문법 정리 2. <내장함수, itertools, heapq, bisect, collections, math>
파이썬의 라이브러리중 많이 쓰이는 대표적인 라이브러리 6가지 정도가 있다. 이 게시글에선 그 6개에 대해 간단하게 자주 쓰이는 방법 위주로 정리해보는 게시글이다. 간단 정리 내장함수 : print(), input() 과 같은 기본 입출력부터 sorted()같은 정렬 기능을 포함하고 있다. itertools : 파이썬에서 반복되는 형태의 데이터를 처리하는 기능을 제공하는 라이브러리다. 순열과 조합을 제공한다 heapq : 힙(Heap) 기능을 제공하는 라이브러리이다. 우선순위 큐 기능을 구현하기 위해 사용한다 bisect : 이진탐색(Binary Search) 기능을 제공하는 라이브러리다 collections : 덱(deque), 카운터(Counter)등의 유용한 자료구조를 포함하는 라이브러리다 math ..
파이썬 문법 정리 1. <리스트, 문자열, 튜플,딕셔너리,Set>
알고리즘 공부를 하면서 파이썬의 기초적인 문법들과 라이브러리들을 확실히 알고 쓰는게 좋을거같아서 복습하는겸 정리하는 게시글 리스트 자료형 리스트는 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용한다. 파이썬의 리스트 자료형은 C나 자바와 같이 내부적으로 배열(Array)를 채택하고 있고 동시에 연결 리스트 자료구조 기능을 포함하고 있어 append(), reverse() 등의 메서드를 지원한다. 리스트 만들기 리스트는 대괄호([])안에 원소를 넣어 초기화하며 쉼표(,)로 원소를 구분한다. 리스트의 원소에 접근할 때는 인덱스 값을 괄호 안에 넣는다. 비어있는 리스트를 선언하고자 할 때는 대괄호를 이용할 수 있다 a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(a) # => [1,..
항해99 하이커스 출발
항해99 커리큘럼을 모두 진행하고 추가적으로 하이커스라는 스터디를 모집했다 너무 매력적인 커리큘럼이라 바로 지원을했고, 약 15분간의 면접후 다음주에 면접 결과가 도착했다. 너무나 운이 좋게도 합격을 했고 이 커리큘럼을 진행하기로 결정했다. 열심히 스터디원들과 커리큘럼을 따라가서 코테도 열심히 준비해야지!
그리디 알고리즘이란?, 백준 설탕배달
탐욕 알고리즘(Greedy Algorithm)이란? Greedy는 ‘탐욕스러운, 욕심 많은’ 이란 뜻이다. 탐욕 알고리즘은 말 그대로 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법이다. 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법이다. 탐욕 알고리즘은 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다. 하지만 탐욕 알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이다. 최..
트리와 힙 (파이썬 네이티브 코드로 구현하기)
트리란? 뿌리와 가지로 구성되어 거꾸로 세워놓은 나무처럼 보이는 계층형 비선형 자료 구조. 트리는 비선형 구조다. 비선형 구조는 선형구조와는 다르게 데이터가 계층적 혹은 망으로 구성되어있다. 선형구조와 비선형구조의 차이점은 형태뿐만 아니라 용도에서도 차이점이 많다. 선형구조는 자료를 저장하고 꺼내는데에 초점이 맞춰져있고 비선형구조는 표현에 초점이 맞춰져 있다. 아래 폴더 구조가 대표적인 트리의 형태다 트리의 용어 Node: 트리에서 데이터를 저장하는 기본 요소 Root Node: 트리 맨 위에 있는 노드 Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node: 어떤 노드의 상위 레벨에 연결된 노드 Child Node: 어떤 노드의 하..
객체지향에 대해서
객체 지향 프로그래밍 (Object Oriented Programming) "객체지향이 뭐예요?"라고 물어본다면? 객체지향 프로그래밍은 사람 중심적으로 생각하여 프로그래밍하는 것입니다. 자동차를 예를 들면 바퀴나 엔진처럼 각각 맡은 기능의 역할만 수행하고 이 객체들은 필요에 따라 교체할 수도 있습니다. 객체지향 프로그래밍도 마찬가지로 객체들을 각각 역할에 맞게 작성하고 필요에 따라 교체하거나 수정할 수 있게 설계하는 프로그래밍 방법입니다.. 객체지향의 장점 객체지향적인 코드는 이미 작성한 코드에 대한 재사용성이 높습니다. 또한 객체 단위로 코드가 나눠져 작성되기 때문에 유지보수에 용이하고 협업할 때 용이합니다. 객체지향의 단점 객체가 많으면 용량이 커질 수 있고, 설계 시 많은 노력이 필요합니다. 객체 ..
JPA 연관관계
연관관계를 맺을 때마다 부모? 자식? 주인? 용어가 자꾸 혼동이 돼서 면접 준비도 할 겸 나만의 정리를 해보려 한다. 다중성 연관관계의 다중성은 다대일(N:1)(ManyToOne) 일대다(1:N)(OneToMany) 일대일(1:1)(OneToOne) 다대다(N:N)(ManyToMany) 가 있다. 다대다는 가급적 쓰지 않는 것이 좋다고 한다. 방향 방향은 단방향과 양방향 두 가지가 있다. 단방향은 서로 연관된 엔티티 중 한쪽만 상대방을 알고 있는 거고 양방향은 둘 다 서로를 알고 있는 것이라 생각하면 된다 예를 들어보자 대학교 수강신청에서 내가 듣는 수강 과목들은 여러 개(N) 개이고 나는 한 명이다. 이때 나를 기준으로 1:N 관계이고 나는 내가 듣는 수강과목들이 뭐뭐가 있는지 알아야 하니 수강과목을 ..