LiveStudy

라이브 스터디 10주차

11 minute read

목표 멀티쓰레드 프로그래밍 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요.

라이브 스터디 3주차

4 minute read

목표 연산자 자바가 제공하는 다양한 연산자를 학습하세요.

라이브 스터디 2주차

4 minute read

목표 자바 데이터 타입, 변수 그리고 배열 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다.

라이브 스터디 1주차

8 minute read

목표 JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기.

Back to Top ↑

python

*args와 **kwargs 활용

less than 1 minute read

*args *args는 *arguments의 줄임말이다. 이 지시어는 여러 개(몇 개인지 모름)의 인자를 함수로 받고자 할 떄 사용된다.

set들끼리의 집합

less than 1 minute read

교집합 a = set() b = set() 1) set.intersection(a, b) 2) a.intersection(b)

requests 모듈 사용법

less than 1 minute read

get 요청일 때(params 사용) payload = {'key1': 'value1', 'key2': 'value2'} response = requests.get('http://httpbin.org/get', params=payload) => http://httpbin.or...

Python에서의 상속

less than 1 minute read

클래스를 상속했을 때 메서드 실행 방식 인스턴스의 메서드를 실행한다고 가정할 때 __getattribute__()로 bound 된 method 를 가져온 후 메서드를 실행한다. 메서드를 가져오는 순서는 __mro__에 따르는데 MRO(method resolution order)는 ...

literable(이터러블) 이란?

less than 1 minute read

iterable 의 의미는 member를 하나씩 차례로 반환 가능한 object를 말한다. iterable 의 예로는 sequence type인 list, str, tuple 이 대표적이다. 우리가 당연하게 사용했던 위와 같은 for 문은 사실 range() 로 생성된 list...

for문의 for-else 사용법

less than 1 minute read

기본적으로 for문 에 break 가 포함 되어 있을때 사용가능한데 for문을 순회 하던 중 break를 만나면 for문을 빠져나오는건 일반적인 언어와 같지만 break 문을 만나지 않았다면 for문 종료 이후 else 문이 실행된다.

filter의 사용

less than 1 minute read

filter란 무엇인가를 걸러낸다는 뜻으로, filter 함수도 동일한 의미를 가진다. filter 함수는 첫 번째 인수로 함수 이름을, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다. 그리고 두 번째 인수인 반복 가능한 자료형 요소들이 첫 번째 인수인 함수...

decorator란?

less than 1 minute read

decorator를 한마디로 얘기하자면, 대상 함수를 wrapping 하고, 이 wrapping 된 함수의 앞뒤에 추가적으로 꾸며질 구문들을 정의해서 손쉽게 재사용 가능하게 해주는 것이다. ```python import datetime def datetime_decorator(...

Back to Top ↑

kotlin

코틀린 인액션 4장 - 3

3 minute read

컴파일러가 생성한 메소드: 데이터 클래스와 클래스 위임 자바 플랫폼에서는 개발자가 작성한 클래스가 equals, hashCode, toString 등의 메소드를 오버라이드해야하는 경우가 있고, 이럴 경우 코드는 번잡해지기 마련이다. 코틀린 컴파일러는 이런 메소드를 기계적으...

코틀린 인액션 4장 - 1

3 minute read

클래스 계층 정의 코틀린 인터페이스 인터페이스는 interface를 사용하여 정의한다. 추상 메소드와 구현이 있는 자바의 default 메소드 정의 가능하지만, 필드를 가질 수 없다.

코틀린 인액션 3장 - 2

3 minute read

컬렉션 처리: 가변 길이 인자, 중위 함수 호출, 라이브러리 지원 컬렉션을 처리할 때 쓸 수 있는 코틀린 표준 라이브러리 함수 몇가지를 알아보자. 자바 컬렉션 API 확장 앞에서 코틀린 컬렉션은 자바와 같은 클래스를 사용하지만 더 확장된 API를 제공한다고 했다. 예를들어...

코틀린 인액션 3장 - 1

5 minute read

코틀린에서 컬렉션 만들기 자바에서 자주 사용되는 컬렉션들을 코틀린에서는 어떻게 사용하는지 알아보자.

코틀린 인액션 2장 - 4

1 minute read

코틀린의 예외 처리 코틀린의 예외처리 구문은 자바의 예외처리 구문과 비슷하다.

코틀린 인액션 2장 - 3

3 minute read

while과 for 루프 while 루프 코틀린에는 while과 do-while 루프가 있고, 문법은 자바와 같다.

코틀린 인액션 2장 - 2

6 minute read

클래스와 프로퍼티 코틀린을 활용하면 자바보다 더 적은 양의 코드로 클래스와 관련있는 대부분의 작업을 수행할 수 있다. 간단한 자바빈 Person 클래스를 정의하자.

코틀린 인액션 2장 - 1

3 minute read

함수와 변수 코틀린에서는 왜 타입 선언 생략과 변경 가능한 데이터보다 변경할 수 없는 불변 데이터 사용을 장려하는지 알아보자. Hello, World! // Test.kt fun main(args: Array<String>) { println("Hello...

코틀린 인액션 1장

5 minute read

코틀린 기본 기능 데모 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어다. 간결하고 실용적이며, 자바 코드와의 상호운용성을 중시하고, 현재 자바가 사용중인 곳이라면 대부분 코틀린을 활용할 수 있다. 간단하게 Person이라는 클래스를 정의하고 Person을 모아둔 컬렉션...

Back to Top ↑

spring

JPA의 락

1 minute read

DB의 동시 액세스의 대한 주제이다. 낙관적 락, 비선점 락(Optimistic Lock) 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정해 Lock을 설정하지 않는다. 락을 해야하는 상황의 발생이 일어나면 그때 대응하자, 자원을 선점...

스프링과 JPA

2 minute read

스프링과 JPA 데이터베이스 연동에 사용되는 기술은 전통적인 JDBC에서부터, 스프링 DAO, 마이바티스, 하이버네이트와 같은 ORM에 이르기까지 매우 다양하다. 이중에서 하이버네이트 같은 ORM은 애플리케이션에서 사용하는 SQL까지도 프레임워크에서 제공하기 때문에 개발자가 처리해...

독립적으로 실행가능한 JAR

less than 1 minute read

JAR 파일 하나로 실행 스프링 부트로 작성한 어플리케이션을 빌드하여 jar파일로 생성한 후 압축을 해제하면 lib 폴더에 dependency로 등록된 모든 라이브러리들이 jar파일로 들어있는 것을 확인할 수 있다. 기본적으로 JAR 파일은 또 다른 JAR 파일을 포함할 수 없다.

SpringBoot의 의존성 관리와 자동설정

2 minute read

스프링 부트의 자동설정 우리는 스프링 부트 스타터를 이용하여 프로젝트에 필요한 라이브러리들을 효과적으로 관리할 수 있다. 하지만 라이브러리만 추가한다고 해서 추가된 모듈을 바로 사용할 수 있는 것은 아니다. 라이브러리들이 추가되고 나면 추가된 모듈을 사용할 수 있도록 스프링 설정파...

SpringBoot의 테스트와 로깅

less than 1 minute read

@SpringBootTest 테스트 클래스 상단에 있는 @SpringBootTest 어노테이션은 메인 클래스에 선언된 @SpringBootApplication과 비슷한 어노테이션이다. 사용자가 작성한 빈과 자동설정 빈들을 모두 초기화하듯이 @SpringBootTest 역시 테스...

Spring IoC Container란?

1 minute read

Spring IoC Container란? DI가 가능하기 위해서 우리는 각각의 비즈니스 로직에 따라 DI를 필요로하는 객체들을 서로 연결시켜줘야 한다. 하지만 이러한 연결에 대해 이해하기 전에 DI를 필요로하는 객체들은 어디에 위치해야 할까? 그 곳이 바로 Spring Contai...

springMVC와 REST

1 minute read

Spring의 annotation 기반 MVC 프레임워크는 RESTful한 웹서비스를 만드는 과정을 단순화한다. 전통적인 SpringMVC 컨트롤러와 RESTful 웹서비스 컨트롤러의 차이는 HTTP Response body가 생성되는 방식이다. 전통적인 MVC 컨트롤러는 View...

Spring Boot vs. Spring MVC vs. Spring 비교

3 minute read

- learn what problems they solve, and where they’re best applied. - The most important thing that you will learn is that Spring, Spring MVC, and Spring Boot...

spring MVC란?

2 minute read

Spring MVC spring MVC란 Front Controller Pattern에 기초한 spring 프레임워크에서 제공하는 웹 모듈이다. MVC 패턴에 기초하여 웹 프로그래밍을 할 수 있게 해주는 프레임워크인 것이다. Model : 모델은 뷰가 렌더링하는데 필요한...

Back to Top ↑

java

Gradle - 작성중

less than 1 minute read

Gradle gradle 빌드하면 build 폴더 maven 빌드하면 target 폴더 인텔리제이 빌드하면 out 폴더

Maven

5 minute read

Maven 자바 프로젝트의 빌드(build)를 자동화 해주는 빌드 툴이자 프로젝트의 전체적인 라이프 사이클을 관리하는 도구다. 기존에는 Ant가 많이 사용되었지만 Maven이 Ant를 넘어서 더 많은 개발자들이 사용하게 되었다.

Build란?

less than 1 minute read

빌드(Build)란? 일반적으로 빌드란 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말한다. 예를들어 간단히 자바 프로젝트를 만들어 진행할 때, 그 안에는 우리가 작성한 .java 파일들과 정적 파일등에 해당하는 resource 파일들이 ...

nested class의 종류 - 작성중

less than 1 minute read

nested class(중첩 클래스) 클래스 안에 다시 클래스를 정의할 수 있는데 이것을 nested class(중첩 클래스)라고 한다. nested class에는 아래와 같은 종류들이 있다. static inner 멤버 클래스 ㅇㄹㅇ nonstatic inner 멤버 클래...

자바에서 static 블록은 무엇을 의미할까?

1 minute read

아래의 코드와 같이 static { } 혹은 { } 블록을 종종 볼 수 있다. 이러한 블록들은 초기화 블럭(initialization block)이라고 하고 클래스 초기화 블럭, 인스턴스 초기화 블럭으로 나뉜다. ```java class BlockTest{ static ...

AbstractClass vs Interface

less than 1 minute read

추상 클래스란(Abstract Class) 추상 클래스는 계승될 것을 전제로 한 클래스다. Class에 abstract 수식자를 지정함으로써 추상 클래스를 정의할 수 있다. 추상 클래에스에는 추상 메소드라는 구현하지 않은 메소드를 하나 이상 정의할 수 있는데 추상 클래스를 상...

Back to Top ↑

Algorithm

Add Two Numbers

less than 1 minute read

https://leetcode.com/problems/add-two-numbers/

Back to Top ↑

DB

실행계획(ExecutionPlan)의 이해

1 minute read

실행계획이란? DBMS의 쿼리 실행에 같은 결과를 만들어 내는데는 한가지 방법만 있는 것은 아니다. 아주 많은 방법이 있지만 각 처리 방법마다 실행 시간(성능)은 서로 다를 수 있기에 그 중에서 어떤 방법이 최적이고 최소의 비용이 소모될지 결정해야 한다. 어떻게 최적의...

Transaction의 이해

1 minute read

Transaction이란? DB의 상태를 변환시키는 하나의 논리적인 “작업 단위를 구성하는 연산들의 집합”이다. 트랜잭션은 항상 all or nothing 원칙을 만족해야 한다. 즉 완료를 하던가(commit) 다시 원래의 상태로 돌아가던가(rollba...

Index의 이해

1 minute read

인덱스(Index)란? 인덱스는 RDBMS에서 검색속도를 높이기 위해 사용하는 하나의 기술 말 그대로 책의 맨처음 혹은 맨뒤에 있는 ‘목차’에 주로 비유된다. DBMS도 데이터베이스 테이블의 모든 데이터를 검색(풀스캔)해서 원하는 결과를 가져 오려면 시간이 오래 ...

Back to Top ↑

django

django 프로젝트에 비동기 도입하기 - 작성중

1 minute read

발단 업무 외적으로 동아리 팀원들과 서비스를 개발하여 서비스 중이다. 간단하게 소개하자면 보통 크롬 브라우저를 사용할 때 자주 접속할 사이트를 브라우저 상단에 북마크를 사용하여 관리하곤 할 것이다. 하지만 그러한 북마크의 접근성과 가시성 등 여러 가지 불편함에 팀내에서 의견이 모여...

django에서 csv 파일을 리턴할 때

less than 1 minute read

response.write(u'\ufeff'.encode('utf8')) csv파일을 생성하였는데 한글이 깨지는 경우 u’\ufeff’.encode(‘utf8’)을 미리 넣어줘서 이파일이 ‘utf-8 with bom’이라는 방식으로 인코딩 되어있다는 것을 명시적으로 알려...

Back to Top ↑

etc

MSA

2 minute read

MSA란? 하나의 큰 어플리케이션을 “여러개의 작은 어플리케이션으로” 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐이다. MSA가 등장하기전 기존 아키텍처는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어있는 형태, 이러한 아키텍처를 Monolithic Architec...

Back to Top ↑