목록java (9)
jgwk
맥에서, Java 여러개 설치할 때 brew upgrade# jenv 설치brew install jenvecho 'eval "$(jenv init -)"' >> ~/.zshrcreset# temurin 설치 (openjdk)brew search temurinbrew install temurin@8brew install temurin@21reset# 설치된 모든 jdk path 확인/usr/libexec/java_home -V# jenv에 path 추가jenv add /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Homejenv add /Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home# j..
용어가 뒤죽박죽이다. 용어는 사용하는 문맥에 따라 조금씩 다른가보다. 이걸 정리를 해서 적고 싶은데 잘 모르겠다. 본대로 적고 남기니 언젠가는 정리를 할지도... Hotspot 계열 runtime compiler (jit) 에는 C1, C2 두개의 컴파일러가 있다. C1 을 Client, C2 를 Server 라고 한다. Java7 의 새 기능으로 tiered compilation 이 추가되었는데, non-jit (interpreter), C1, C2 를 교차 컴파일하는 기능이다. 이 기능이 뭔지 예전에 한참 찾아 헤맸는데 최근에 Baeldung 에 정리가 되어있어 기록으로 남긴다. https://www.baeldung.com/jvm-tiered-compilation 참고로 Hotspot 계열 한정이다...
SettingsEditor > Font > Size : 12.0Editor > Font > Line height : 1.1Editor > Color Scheme > Console Font > Size : 10.0Editor > Inlay Hints > Code vision > Default position... RightEditor > General > Editor Tabs > Use small font for labels : CheckedEditor > General > Editor Tabs > Close button position : NoneEditor > General > Editor Tabs > Sort tabs alphabetically : CheckedEditor > General > Cod..
어떤 구조를 채택할 것인가? 사실 잘 모르겠다. 결국 내 선택이 무엇이냐 인데.. 각 구성의 차이를 살펴보았다. 빌드타임과 런타임 메이븐은 빌드타임에 프로파일을 선택하고 환경에 맞는 결과물을 각각 만들어 낸다. 환경마다 빌드를 따로 해야 한다. 환경에 맞는 패키지를 만드는 장점이 있다. 스프링은 모든 환경을 포함한 패키지로 만들고 런타임에 선택한다. 내가 가지고 있는 경험이나 일하는 기업 환경에선 메이븐이 옳다. 환경에 대한 종속 개발자의 개인 개발환경, 테스트 환경, 운영 환경의 로그인 방식이 모두 다른 경험이 있다. 뿐만 아니다. 어떤 기능은 사용하는 도구의 지원 부족으로 환경에 따라 목업으로 처리한 경우도 있다. 이런 경우는 선택지가 아니다. 메이븐이다. 스프링에서도 가능은 하겠지만 그 정도까지 하..
sql 처럼 자바에서 데이터를 처리할 수 있을까? 그에 대한 자바의 대답이 stream api 이다. 처음에 단어만 듣고서 개선된 input/output stream 이 새로 나왔나 싶었는데, 데이터 처리의 흐름을 표현하기 위한 단어였다. 연결된 메서드와 람다를 사용한 데이터의 처리방법 이다. 대부분의 자료형들은 직접 스트림을 열거나, 유틸리티를 통해 열 수 있게 되어있다. 스트림을 여는 방법이 다양해 보인다. 쓰면서 익숙해져야 겠다. 예제를 첨부한다. public class Basic { public static void main(String[] args) { collection(); array(); varargs(); range(); random(); lambda(); empty(); } privat..
jdk8 이 나오고 어느날 코드를 보다 이걸 봤을땐 당황했었다. 이 생소한 문법은 무엇인가.. 메서드 참조다. 람다를 하나의 표현식으로 구현하는 경우 메서드 참조로 대체할 수 있다. 람다 자체를 생략하고 쓸 수 있어 코드의 양이 줄어든다. 굳이 하는 마음이 조금 든다. 어쨋든 코드가 줄어드니 쓸꺼다. 메서드와 생성자도 호출이 가능하고, 첫번째 인자에 대한 임의 호출도 가능하다. 예제는 튜토리얼을 보고 가볍게 작성했는데, 실제 프로그래밍을 할때 편하게 쓰려면 익숙해지는 시간이 필요해 보인다. 사용 예를 첨부한다. public class MethodReferences { public static void main(String[] args) { basic(); staticMethod(); instanceMet..
jdk8 이 나온지 한세월이 지났는데 지금까지 jdk7 을 써서 이제야 정리해본다. 람다는 함수(메서드)를 표현하는 방법이다. 자바는 메서드를 인자 또는 반환 타입으로 취급할 수 없는데, jdk8 에서 람다라는 형태로 그것을 지원하기 시작했다. 정확한 구현은 모르지만, 코드 제공자의 입장에선 여전히 인터페이스를 통해 메서드를 호출한다. 자바에서 람다 문법의 생략 가능한 경우만 적어 보자면 - 인자가 없을 경우 인자를 감싸는 괄호 생략 - 표현식이 1개만 있을 경우 함수를 감싸는 중괄호 생략 - 표현식이 1개만 있고 반환 일 경우, 'return' 키워드 생략 이 가능하다. 특히 표현식이 1개만 있을 경우 메서드 참조(Method References)를 사용 하여 람다를 대체할 수 있다. java.util..
brew 를 사용하여 openjdk를 설치한다. 설치할 버전은 jdk8 jdk16 이다. # https://adoptopenjdk.net brew tap AdoptOpenJDK/openjdk brew search --cask openjdk ... brew install --cask adoptopenjdk8 brew install --cask adoptopenjdk16 brew list --cask # remove brew remove --cask adoptopenjdk8 설치된 jdk 확인할땐 /usr/libexec/java_home -V jdk 가 여러개일때 환경변수 등록 # .zshrc export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)
생각보다 자주 설정하게 되어 기록으로 남김 eclipse 이클립스를 내려받는다. 웹 개발을 하니 jee 버전을 내려받는다. 압축을 풀고 eclipse.ini 파일을 수정한다. -vm C:\dev\bin\jdk1.8.0_202\bin ... -Dfile.encoding=UTF-8 -Duser.name=jgwk eclipse - Preferences 설정 General > Show heap status 체크 General > Apperance > Colors and Fonts > Basic 확인 General > Editors > Text Editors : 탭 설정 General > Editors > Text Editors > Show whitespace characters 확인 General > Keys ..