본문 바로가기

분류 전체보기

(116)
입력된 값에 NaN이 있는지 검사하기 실수를 사용하면 NaN 검사는 필수임. NaN 값은 아무리 연산해도 NaN이 출력되므로 데이터가 엉망이 되어버리기 때문임. 따라서 검사해보고 NaN이 있다면 값을 초기화하는 메소드가 필요함. 저 방식 외에도 NaN - NaN 같은 방법도 된다고 함. public class JavaStudy { public static void main(String[] args) { String userInput = "NaN"; double doubleValue = Double.parseDouble(userInput); double currentBalance = 10000.0; if (Double.isNaN(doubleValue)) { System.out.println("NaN이 입력됨"); doubleValue = 0...
프로그래밍 패러다임 개발자의 입장에서 바라봤을 때, 어떤 방식으로 프로그램을 구현해야 할까? 이걸 프로그래밍 패러다임이라고 표현함. 사용하던 구현 방식의 단점을 극복, 보완하기 위한 순서임. 절차 지향 → 객체 지향 → 함수형 과정에 집중하느냐, 결과에 집중하느냐 따라서 두 분류로 나뉨. 1. 명령형 프로그래밍 절차지향 프로그래밍 : 절차의 연속 객체지향 프로그래밍 : 객체 + 객체 2. 선언형 프로그래밍 함수형 프로그래밍 : 순수함수 + 일급객체 비교를 하자면... 명령형 : 구현을 위한 알고리즘을 명시하되 목표는 명시하지 않음. (How) 명령형 : 프로그램은 명령의 수행이며, 어떻게 구현하는지 그것이 중요하다. 선언형 : 목표만 명시하고 알고리즘은 명시하지 않음. (What) 선언형 : 프로그램은 함수의 계산이며, 무..
자바 변수는 일곱 가지가 있음 자바 공부, 혹은 자바 면접을 준비하면 반드시 접하는 게 자바 변수의 종류 및 정의임. 영어로 적으면 명확하지만 한글로 적으면 하나의 변수를 다른 명칭으로 표현하기도 해서 잠깐 살펴볼 필요가 있음. 그냥 1~7번 외우는 것은 내 취향이 아니니 기준을 잡고 암기했음. 데이터 타입 기본형 변수 참조형 변수 선언 위치 멤버 변수 (=전역 변수) 지역 변수 기준점은 크게 두 개로 볼 수 있음. 데이터 타입에 따른 변수는 두 개 있으며, 선언 위치에 따른 변수가 두 개 있음. 데이터 타입에 따른 변수는 위에서 언급한 것이 끝임. 반면에, 선언 위치에 따른 변수에는 하위 변수가 존재함. 멤버 변수 (=전역 변수) 클래스 변수 인스턴스 변수 지역 변수 매개 변수 멤버 변수 하위에 둘, 지역 변수 하위에 하나. 앞선 ..
Container는 왜 필요할까? 애플리케이션을 쉽게 공유하고 배포할 수 있도록 한 곳에 모으자! 목적은 간결하다. 다만 과정에서 얻는 이득은 자세히 알아볼 필요가 있다. 가상화와 비교를 통한 장점, 개발환경에서 얻는 이점을 눈여겨 봐야 한다. vs 가상화 호스트 OS를 사용하여 파일 크기가 적다. 여러 개의 컨테이너를 하나의 OS로 처리하므로 고밀도화가 가능하다. 응용 프로그램과 미들웨어만 실행하면 되므로 실행 시간과 종료 시간이 빠르다. vs 환경 다른 어플리케이션과 분리된 최적화된 환경을 생성할 수 있다. Linux, Windows, Mac OS, 가상머신, 데이터 센터, 퍼블릭 클라우드 등 사실상 어느 환경에서나 구동이 가능하다. 컨테이너를 그대로 퍼블릭 클라우드에서 실행이 가능하므로 마이크로 서비스 방식의 기능 확장에 적합하다...
방법론이 뭐지? 방법론이 뭐지? 주어진 목표를 달성하기 위한 어느 정도 확실한 결과가 보장된 절차를 뜻한다고 보면 된다. 단, 전문적인 용어로 보자면 방법 자체에 대한 심도 깊은 논의를 방법론이라고 한다. 일반적으로 접하는 문제 해결을 위한 방법론은 개별적 방법론의 메타 이론이라고 인식하는 것이 좋다. 방법론 > 개별적 방법론 > 우리가 접하는 다양한 방법론 방법론을 왜 알아야 해? 방법론은 문제를 해결하여 답에 도달할 수 있는 길을 제시한다. 1. 무엇을 2. 어떻게 구체적으로 두 가지 요소를 제시하는 것이 방법론의 목표다. 이렇게 과정이 확실하게 된다면 다음과 같은 장점이 있다. 1. 프로젝트 관리가 가능해짐 2. 고객의 다양한 요구를 개발 가능한 틀에 맞춰서 해석할 수 있다 3. 사용자와 개발자 간 원활한 의사소통..
리액트가 뭐에요? 페이스북 개발진이 만든 라이브러리 리액트는 자바스크립트로 데스크톱 애플리케이션을 만들 수 있는 라이브러리입니다. 페이스북 개발팀이 대규모 애플리케이션의 유지보수를 효율적으로 하고자 만들었습니다. 뷰만 고려하는 유지보수를 효율적으로 하기 위한 라이브러리 오로지 V(View)만 고려하는 라이브러리입니다. 데이터가 변경될 경우, 기존 뷰를 날려버리고 처음부터 새롭게 렌더링합니다. 렌더링을 다시 하면 CPU 점유율이 크게 오르고, 메모리도 많이 사용됩니다. 이런 문제를 해결하기 위해서 렌더링 방식을 두 가지로 나눕니다. 초기 렌더링 render() {...} render 함수가 처음 보이는 화면을 결정합니다. 뷰가 어떻게 생겼는지, 어떻게 작동하는지에 대한 정보를 지닌 객체를 반환합니다. 최상위 컴포넌트의 렌더..