
JDK/JRE 1. 개념 JDK(Java Development Kit): 개발자들이 자바로 개발하는 데 사용하는 SDK키트. SDK(Software Development Kit): OS, H/W에서 제공하는 툴 ex) 안드로이드 스튜디오 2. 버전 Java SE: 가장 기본이 되는 표준 에디션의 자바 플랫폼으로 자바 언어 핵심 기능 제공 Java EE: 대규모 기업용 에디션으로 기업환경을 위한 대규모 솔루션 개발 Oracle JDK Open JDK Amazon Corretto 3. JDK 디렉토리 구성요소 bin: 자바 개발, 실행에 필요한 도구와 유틸리티 명령 javac: 자바 컴파일러로 자바 소스를 바이트코드로 컴핑 java: 자바 인터프리터 jar: 자바 클래스 파일을 압축한 자바 아카이브 파일 l..

Tip 10. 객체를 이용해 정적인 키-값을 탐색하라 * 객체는 변화가 없고 구조화된 키-값 데이터를 다루는 경우에 유용하다. * 자주 갱신되거나 실행되기 전에는 알 수 없는 동적인 정보를 다루기에는 객체가 적합하지 않다. ex) 색상 컬렉션을 공유하는 경우 객체를 선택한다. 데이터가 변경될 가능성이 없기 때문이다. const colors = { red: '#d10202', green: '#19d836', blue: '#0e33d8' } => colors.red로 직접 참조하여 사용 가능하고 정적인 정보에 적합하고 반복/갱신/대체/정렬되는 정보는 맵이 적절하다. export const config = { endpoint: 'http://pragprog.com', key: 'secretkey', }; //..

Tip 7. 펼침 연산자로 배열을 본떠라 * 배열은 수많은 메서드가 있으므로 혼란스럽거나 조작과 부수 효과로 인한 문제가 생길 수 있다. const cart = ['abc', 'cdf']; const copyCart = [...cart]; //['abc', 'cdf'] => 새로운 배열을 선언하고 펼침 연산자로 배열의 전체 요소를 가져올 수 있다. function removeItem(items, removable) { const updated = []; for (let i = 0; i items 배열의 길이만큼 반복한다. i..

Tip 5. 배열로 유연한 컬렉션을 생성하라 const team = [ 'Joe', 'Dyan', 'Bea', 'Theo', ]; function alphabetizeTeam(team) { return [...team].sort(); // ['Bea', 'Dyan', 'Joe', 'Theo'] } => 알파벳 순(오름차순)으로 정렬한 배열 const staff = [ { name: 'Wesley', position: 'musician', }, { name: 'Davis', position: 'engineer', }, ]; function getMusicians(staff) { return staff.filter(member => member.position === 'musician'); // [{name..

Tip3. 블록 유효 범위 변수로 정보를 격리하라 - 유효 범위를 따르는 변수를 선언한 경우 함수 내부 어디서든 접근 가능 - 호이스팅: 코드가 시작되기 전에 [변수, 함수 선언이 해당 스코프의 최상단]으로 끌어 올려지는 것을 말한다. helloWorld(); // Hello World! function helloWorld(){ console.log('Hello World!'); } => 함수 선언부는 컴파일 단계에서 메모리에 추가된다. 덕분에, 실제 함수 선언을 만나기 전에 함수에 접근할 수 있다. var a; console.log(a); // undefined var a = 3; => JS는 선언을 hoist하는 것이지 초기화를 hoist하지는 않는다. => 변수가 선언되기 전 변수를 사용하더라도 에..

TIP 1. const로 변하지 않는 값을 표현하라 * const는 코드를 읽기 쉽게 만드는 제약사항을 가진다. - 블록의 문맥 내에서 재할당할 수 없는 변수 선언 - 의미: 값을 할당하고 변경하지 않겠다. 예시1) const taxRate = 0.1; const total = 100 + (100 * taxRate); return `구매 금액은 ${total}입니다.`; => 구매 금액으로 반환되는 값을 정확히 알 수 있다. total은 상수이며 재할당 할 수 없다는 것을 알 수 있기 때문이다. 예시2) const discountable = []; for (let i=0; i 변수를 재할당 할 수는 없지만 값은 바꿀 수 있다. const로 배열을 선언하였지만 여전히 배열 항목을 추가할 수 있다. 질문점)..

* 원인 brew로 mysql 설치 한 경우, 실행 명령어 입력 시 Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/sooinsoft/Library/LaunchAgents/homebrew.mxcl.mysql.plist` exited with 5. 해당 에러 메시지가 뜨게 되는데 해당 사이트의 명령어 입력을 통해 해결할 수 있었다. https://stackoverflow.com/questions/70266791/cant-start-httpd-failure-while-executing-bin-launchctl-bootstrap-gui-501 Can't start httpd - Failure while executing; `/b..

* HomeBrew가 설치되어있다고 가정한 후 시작합니다. * 설치 가능한 모든 jdk 찾기 $ brew search jdk * 원하는 자바 버전 설치하기 brew install --cask adoptopenjdk11 brew install --cask adoptopenjdk14 * 자바가 설치된 곳 확인하기 $ /usr/libexec/java_home -V * 자바 버전 세팅하기 $ vi ~/.zshrc * 자바 변수 선언과 사용 # Java Paths export JAVA_HOME_11=$(/usr/libexec/java_home -v11) export JAVA_HOME_14=$(/usr/libexec/java_home -v14) # Java 11 export JAVA_HOME=$JAVA_HOME_1..