Select select는 테이블에서 열을 지정하여 선택한다. where where는 테이블에서 행을 지정하여 선택한다. where는 조건식을 지정해 조건식은 참 또는 거짓의 진리값을 반환하는 식으로 조건식에서 만족한 행만 결과값으로 반환한다. select ...
SQL SELECT 데이터 검색
React 라이프사이클
라이플사이클이란? 컴포넌트가 생성되고, 업데이트, 제거 까지의 과정을 말한다. 리액트 라이플사이클에서는 3가지의 단계로 나뉜다: 마운트(Mount), 업데이트(Update), 언마운트(Unmount) Mount : 컴포넌트가 생성되어 DOM에 추가되는 단계다. 이는 화면에 처음으로 랜더링 될 때를 말한다. Update : 컴포넌트가 상...
@Mock, @MockBean, @InjectMocks
Spring에서 단위테스트와 통합테스트시 객체 생성에 사용하는 애너테이션인 @Mock, @MockBean, @InjectMocks에 대해서 알아보자. @Mock Mock 객체를 직접 생성하여 사용하는 애너테이션으로, 스프링 컨텍스트와 관련이 없는 순수 객체이다. @MockBean Mock 객체를 생성하고, Bean이므로 스프...
[Clean Code] 7장. 오류 처리
Use Exceptions Rather than Return Codes DeviceController.java public class DeviceController { ... public void sendShutDown() { DeviceHandle handle = getHandle(DEV1); // Check the state of t...
[JavaScript] Common Js 와 ES6 Module
자바스크립트의 모듈 시스템은 코드를 분리해 유지보수성을 높여준다. 모듈 시스템 중 가장 대표적인 Common JS와 ES6 Module 시스템에 대해서 알아보자. Common JS Common JS는 NodeJS에서 주로 사용되는 모듈 시스템으로 require와 export 키워드를 통해 모듈을 가져오고 내보낼 수 있다. 예제로 숫자를 더하고 ...
[알고리즘] 이항계수
이항계수란 2개의 항을 전개하여 계수를 나타낸 수를 이항계수라고 한다. 예를 들어 (a+b)^3을 전개한다고 했을 때 (a+b)^3 = a^3 + 2a^2b + 2ab^2 + b^3이 되어 계수는 {1, 3, 3, 1}이 된다. 이런식으로 이항계수들을 전개하다보면 다음과 같은 파스칼 삼각형의 모습이 나온다. 이항계수를 다르게 해석하면 b를 뽑...
[Java] Generics
Generics란 클래스나 컬렉션 자료구조에 타입 체크를 통해 타입 안정성을 제공해주는 기능이다. 여기서 타입 안정성이란 저장되는 곳에 의도하지 않은 데이터 타입 삽입을 막고 잘못된 형변환의 오류를 방지하는 것을 말한다. Generics의 필요성 list에 문자열을 저장하고 데이터를 꺼낼때 형변환을 명시해 조회하는 예를 들어보자. List l...
[알고리즘] 재귀
프로그래밍의 반복 알고리즘에 사용되는 알고리즘은 크게 2가지가 있다. 하나는 반복문을 이용해 순회하는 방식이고, 다른 하나는 재귀를 이용한 방식이다. 재귀란 자기 자신을 호출하면서 반복적으로 수행하는 코드이다. 팩토리얼을 계산하는 알고리즘을 재귀 형식으로 구현해보자. 위 알고리즘은 재귀형식으로 팩토리얼을 구하는 방식으로 Factorial()인 함...
서블릿
웹 서버 VS 웹 애플리케이션 서버 웹 서버는 정적인 리소스만 제공되는 서버다. 정적인 리소스는 HTML, CSS와 같은 즉시 응답 가능한 파일을 말한다. 반면 웹 애플리케이션 서버(WAS)는 동적인 웹 페이지를 만들고 응답해준다. WAS는 웹 서버가 할 수 있는 기능도 처리가 가능하며 비즈니스 로직을 수행할 수 있어 클라이언트에게 동적인 컨텐츠...
Java Stream과 for 문
자바 Stream API를 이용해 코드를 구성하면 다양한 데이터 소스를 일관성있게 다룰 수 있다는 장점이 있어 가독성을 향상시키는 효과를 준다. 그럼 for문과 Stream API를 이용한 반복문은 성능의 차이가 있을까? for loop vs Stream 비교를 위해 원시타입 int를 저장하는 배열을 하나 만들고, 배열에서 가장 큰 원소를 찾는...