분류 전체보기 (461) 썸네일형 리스트형 The brain - David eagleman 나는 누구인가? 어떤 삶을 살아야 하나? 이것은 살면서 끝없이 나에게 하는 질문인 것 같다. 그럼에도 불구하고 나는 아직까지 여기에 대한 답을 내리지 못하였다. 너무나도 불명확하고, 어떻게 접근해야 할지도 모르겠으며, 이에 대한 기준도 정해지지 않은 상태이기 때문이다. 그러던 중, 동네 책방을 돌아다니다가 책 한권이 내 눈에 들어왔다. 바로 데이비드 이글먼이 쓴 더 "브레인"이라는 책이다. 책에 나오는 한 구절이 마음에 들어서 옮겨보았다. 여러 상대와 나누는 대화부터 당신이 속한 문화까지, 삶의 모든 경험들은 당신 뇌의 미시적인 세부구조를 변화시킨다. 신경학적으로 말하면 당신이 누구인가는 당신이 어떤 곳들을 거쳤는가에 달려 있다. 당신의 뇌는 끊임없이 자신의 회로를 다시 작성함으로써 변신한다. 그리고 당.. Java의 동작 방식과 JVM의 구조 Java의 동작 방식과 JVM의 구조 Java Virtual Machine (JVM)은 Java 언어로 작성된 프로그램을 실행하는 가상 머신입니다. JVM은 Java 프로그램의 실행 환경을 제공하며, 운영 체제와 Java 프로그램 사이에서 중개자 역할을 수행합니다. JVM의 구조와 동작 원리를 이해하는 것은 Java 개발자에게 매우 중요한 요소이기 떄문에, Java의 동작 방식과 JVM의 구조에 대해서 한 번 살펴보도록 하겠습니다. 우선 javac라는 컴파일러를 이용하여 모든 .java 파일을 .class 파일로 컴파일 시킵니다. JVM은 바이트코드로 작성된 .class 파일을 이용하여 운영체제에 맞는 네이티브코드로 변환해줍니다. 간략히 살펴보면 아래와 같은 구조입니다. 클래스 로더 시스템 JVM은 클래.. Elasticsearch 모니터링 시스템 구축 일지 - 2편 (Quick start) APM Guide를 통해서 어떻게 APM을 통하여 모니터링 서비스를 구축할 수 있는지 알아보도록 하겠습니다. https://www.elastic.co/guide/en/apm/guide/7.17/apm-quick-start.html 알아보고자 하는 내용 Collect Application Performance Monitoring (APM) data Send APM data to the Elastic Stack Explore and visualize the data in real-time 데이터 수집, APM data를 elastic stack에 전송하는 방법, 실시간 시각화 방법을 알아볼 예정입니다. 사전 준비 데이터를 저장하고 검색하려면 Elasticsearch가 필요하고 데이터를 시각화하고 관리하려면 .. Elasticsearch 모니터링 시스템 구축 일지 - 1편 (APM agent?) 1. 모니터링 시스템 구축기 이전에 Spring boot 프로젝트는 Prometheus + Grafana 조합으로 모니터링 시스템을 구축하고 ElasticSearch 모니터링 시스템은 Metricbeats + Elasticsearch + Grafana 조합으로 모니터링 시스템을 구축하였다. 위 설계대로 모니터링 시스템을 하면, 모든 정보를 elasticsearch에 저장하지 않아도 된다는 이점과, 서버를 카테고리 별로 나눠서 볼 수 있으며, 이미 잘 만들어진 dashboard template을 이용하여 이쁘게 모니터링 시스템을 구축할 수 있다는 장점을 어필해 보았지만 차장님과 팀장님을 설득하는데는 실패하였습니다. 차장님과 팀장님의 의견대로 이번에는 APM agent를 이용하여 모니터링 시스템을 구축해 보.. 코틀린에서 클래스를 다루는 방법 코틀린에서 클래스를 만드는 방법 코틀린에서는 클래스를 어떻게 만들까요? 코틀린에서 클래스 만드는 방법을 알아보기 위해 자바로 클래스를 만들고 그 코드를 코틀린으로 변환해보면서 연습해보도록 하겠습니다. [Java] 일반적인 자바 클래스입니다. name과 age를 필드 변수로 가지고 있으면서 getter와 setter를 구현해준 모습입니다. 이것을 코틀린으로 변환해 보겠습니다. package lec09; public class JavaPerson { // name은 변경할 수 없다고 가정합니다. private final String name; private int age; public JavaPerson(String name, int age) { this.name = name; this.age = age; .. 코틀린에서 함수를 다루는 방법 함수 선언 문법 코틀린에서는 함수를 어떻게 선언하는지에 대해서 알아봅시다. 두 변수 a와 b의 크기를 확인하고 큰 값을 return해주는 함수입니다. 같은 기능을 자바로 구현한 결과와 코틀린으로 구현한 결과를 비교해보겠습니다. [Java] 평범한 자바 코드입니다. 이러한 코드를 코틀린으로 구현하다면 어떻게 해야 할까요? public class Lec08Main { public int max(int a, int b) { if (a > b) { return a; } return b; } } [Kotlin] 접근제한자 명시해 놓지 않으면 기본으로 public 접근제한자가 적용됩니다. 반환 타입도 Unit 인 경우는 생략 가능합니다. fun max(a: Int, b: Int): Int { return if (a.. 코틀린에서 예외를 다루는 방법 try - catch try-catch 문법은 자바와 코틀린 모두 동일합니다. 다만 코틀린에서는 try-catch 문법을 Expression으로 취급한다는 것에 약간의 차이가 있습니다. [Java] [Kotlin] Checked Exception, Unchecked Exception 코틀린에서는 checked exception이 존재하지 않습니다. 코드를 통해 확인해 보도록 하겠습니다. [Java] 여기 파일을 읽어내는 코드가 있습니다. 자바에서는 IOException 예외처리를 진행해야 코드를 실행할 수 있습니다. 코틀린에서는 어떨까요? public class Lec07Main { public static void main(String[] args) throws IOException { File cur.. 코틀린에서 반복문을 다르는 방법 1. for - each 문 [Java] 리스트를 만들고, 리스트 안에 있는 값들을 출력하는 코드가 있습니다. 이 코드를 코틀린으로 변경해보면 어떻게 될까요? public class Lec06Main { public static void main(String[] args) { List numbers = Arrays.asList(1L, 2L, 3L); for (long number : numbers) { System.out.println(number); } } } [Kotlin] 향상된 for문도 Java와 크게 차이나는 부분은 없습니다. 컬렉션을 만드는 방법이 다릅니다. 이터레이터 안에서 콜론(:) 대신 in을 사용합니다. Java와 동일하게 iterable이 구현된 타입이라면 모두 들어갈 수 있습니다... 이전 1 2 3 4 5 ··· 58 다음