반응형

전체 글 509

[나 혼자 지구 한 바퀴] 31.03.2018 크로아티아의 수도 자그레브에 도착!

Zadar에서 저녁 늦게 Zagreb로 이동하기로 했습니다. 하루 빨리 병원에 가서 전문의의 소견을 듣고 싶은 마음이 컸습니다. 아침 일찍 도착해서 호스텔에 짐을 놓았습니다. 병원은 10시쯤에 열었던 것 같습니다. 세르비아 병원에서 써준 소견서를 가지고 광견병 전문 병원에 갔지만, 하필 그날이 병원이 쉬는 날이었습니다. 그래서 어쩔 수 없이 옆에 다른 병원으로 갔습니다. 수많은 크로아티아인이 대기하는 대기실에 혼자 앉아 있으려니 많은 관심을 받는 것 같았습니다. 부담스러움도 잠시 간호사가 불러서 진찰실로 갔습니다. 상처를 보더니 전혀 감염이 일어날 수 없을 것 같다고 했습니다. 그럼에도 불안하다면 피검사를 해보자고 했습니다. 그래서 피까지 뽑고 이래저래 했는데 이상이 없었습니다. 진찰비용 8만원을 지불하..

[나 혼자 지구 한 바퀴] 29.03.2018 ~ 30.03.2018 크로아티아로 가기 위한 이동

서둘러 크로아티아의 수도 자그레브로 이동하기로 했습니다. 모스타르에서 자그레브로 한 번에 가는 버스가 없어서 중간에 Split이라는 도시에서 환승을 하기로 했습니다. Split은 크로아티아의 여름 휴양지 입니다. 잠시 환승을 하려고 버스 정류장에 있었는데 정말 많은 사람들이 놀러 왔었습니다. 잔뜩 신이난 사람들의 얼굴을 보고 있으니 저도 놀고 싶었습니다. 하지만, 가야할 곳이 있어서 Split을 지나치기로 했습니다. https://goo.gl/maps/38JwRvfenBeLhVLn8 스플리트 · 21000 크로아티아 21000 크로아티아 www.google.com 늦은 오후에 쯤에 Zadar라는 도시에 도착했습니다. 오늘은 이곳에서 하루를 보내고 내일 아침에 자그레브로 서둘러서 이동하기로 했습니다. 이전..

팩토리 패턴 (Factory Pattern)

객체 지향 디자인 패턴의 기본 원칙 중 '확장에 있어서는 열려 있어야 하고 수정에 있어서는 닫혀 있어야 한다'를 알고 있을 거예요. 수정이 발생할 가능성이 높은 부분은 따로 분리하여 관리하는 것이 좋습니다. 팩토리 패턴은 객체의 생성을 담당하는 클래스를 한 곳에 모아서 관리하는 것입니다. 예시를 통해서 어떻게 팩토리 패턴을 이용할 수 있는지 경험해 보겠습니다. 아래 예시는 도형의 모양을 만드는 것을 팩토리 패턴으로 만들어 본 것입니다. 1 단계 : Shape 인터페이스 생성 public interface Shape { void draw(); } 2 단계 : Shape 구현 public class Rectangle implements Shape { @Override public void draw() { S..

IT/Java 2022.11.07

[함수형 데이터 처리] 스트림

스트림이라는 용어는 주변에서 많이 들어봤습니다. 스트리밍 서비스가 가장 대표적인 일 겁니다. 아래 그림으로 보시면 이해가 쉬울 것 같습니다. 왼쪽 이미지는 DVD에 데이터 전체가 저장되어서 재생되는 것을 보여줍니다. 오른쪽 이미지는 인터넷을 통해서 일부의 데이터가 들어오면 그 부분만 재생하여 보여주는 것을 표현합니다. 스트림이란 정확히 무엇일까요? 스트림은 '데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소'로 정의될 수 있습니다. '데이터 처리 연산'은 함수형 프로그래밍 언어에서 지원하는 연산과 비슷한 연산을 지원합니다. 예를 들어, filter, map, reduce, match 등을 지원합니다. '소스'는 스트림으로 변환하기 위한 데이터를 말합니다. 컬렌션, 배열, I/O 자원 등이 있습니..

IT/Java 2022.09.25

[나 혼자 지구 한 바퀴] 28.03.2018 모스타르, 보스니아 헤르체코비아

방을 다시 예약했더니, 주인 아주머니께서 더 좋은 밤으로 업그레이드해서 주셨다. 개이득이다. 그런데 침구류가 2개인데 나는 혼자라서... 흠... 허전하다. 날이 좋은 모스타르를 구경하고 싶었다. 밤에는 정말 한가했던 거리가 수 많은 사람들로 꽉꽉 차있었다. 도시의 한 가운데를 가로지르는 커다란 강이 있는데, 색깔이 애메랄드 색을 띄고 있어서 신비로운 느낌을 뿜어내고 있었다. 새로운 나라를 방문하면 잊지 않는 국기 찾기. 보스니아 헤르체코비아에서는 쉽게 찾을 수 있어서 다행이었다. 살짝 따뜻한 날이었다. 맛있어 보이는 젤라또 아이스크림이 보였다. 특히, 레몬이 얹혀진 젤라또가 눈에 들어왔다. 작은 도시지만 이런 좁은 골목에서 느낄 수 있는 멋스러움이 있다. 그리고 이곳은 특별하게 큰 강이 흐르고 있다. ..

[나 혼자 지구 한 바퀴] 27.03.2018 날씨 좋은 두브로브니크, 다음 여행지는?

두브로브니크에서 보스니아 헤르체코비아의 모스타르로 이동하기로 했다. 1박 2일의 짧은 시간이었다. 다음에는 왕좌의 게임을 다 보고 공부한 뒤에 와서 도시를 하나 하나 다시 본다면 새로운 것을 알 수 있을 것 같다. 아름다운 풍경에 아름다운 사람을 하나 얹어보았다. 금상첨화라고 할까. 날씨 좋은 두브로브니크는 정말로 좋았다. 건축의 색은 더욱 돋보였고, 건물 사이로 보이는 하늘은 더욱 푸르렀고, 바다의 색은 더욱 청량했다. 나는 도시의 곳곳의 돌아다니는 것을 좋아한다. 골목을 돌아다니다 보면, 관광객에게 보여주기 위한 많은 사람들을 위한 도시가 아닌, 아기자기한 도시 부끄러운 도시를 볼 수 있다. 창문의 형태, 전등의 모양, 배관의 형태, 턱의 높이와 모양 등 관찰하면 재미있다. 호스텔을 떠나기 전에 호스..

[나 혼자 지구 한 바퀴] 26.03.2018 아름다운 마을, 두브로브니크

항구도시 코토르를 뒤로하고 크로아티아의 두브로브니크로 이동했다. 두브르브니크는 영화 '왕좌의 게임'의 촬영지로 유명하다. 나는 이 영화를 본 적이 없어서 특별한 감정을 가지고 있지 않았다. 그냥 지나가는 도중에 유명한 곳이 있다고 해서 들려보기로 했다. 버스가 높은 지대에 이르러서 창문을 보니 저 멀리 항구 도시 두브로브니크가 보였다. 날씨가 좋지 않았지만, 특유의 멋스러움이 느껴졌다. 중세시대의 항구도시스러운 느낌이 들었다. 호스텔에 도착해서 짐을 풀고, 어떻게 이 도시를 느낄 수 있을지 알아 보았다. 안내 책자도 보고 현지인에게도 물어보았다. 어느 정도 계획이 세워졌고 나가보았다. 호스텔에서 두브르브니크 관광지는 약간 떨어져 있었다. 언제나 그렇듯이 나는 걸어서 갔다. 가는 길의 한 쪽은 산책을 할 ..

기본형과 참조형 변수

자바에서 int와 Integer의 차이는 무엇일까? 기본형 변수 기본형 변수는 실제 값을 저장합니다. 실제 값을 저장하기 때문에 산술 연산이 가능합니다. 그리고 null로 초기화 할 수 없습니다. 기본형 변수는 스택(stack)에 실제 값을 저장하여 사용합니다. boolean, char, byte, short, int, long, float, double 이 있습니다. 참조형 변수 저장된 값의 주소를 값으로 갖습니다. 기본형 변수 8개를 제외한 나머지 타입들 입니다. 주소 값을 갖기 때문에 산술 연산이 불가능 합니다. 하지만 null로 초기화 할 수 있습니다. 참조형 변수는 힙(heap)에 실제 값을 저장하고 해당 주소를 스택에 저장하여 사용합니다. 마치 객체들이 하는 것과 같습니다. Integer, B..

IT/Java 2022.09.04

싱글톤 패턴

디자인 패턴 중 하나인 싱글톤 패턴에 대해서 알아보겠습니다. 회사에서 스프링을 사용하여서 공부를 시작했습니다. 그런데 싱글톤 패턴 개념이 나와서 정리해 두려고 합니다. 싱글톤 패턴 ( Singleton Pattern ) 싱글톤 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고 프로그램 어디에서든지 이 인스턴스에 접근할 수 있도록 하는 패턴입니다. 그래서 새로운 인스턴스를 만들지 않고 기존 인스턴스를 계속 사용합니다. 구현은 아래와 같습니다. public class SingleObject { private static SingleObject singleObject = null; // 외부에서 직접 생성하지 못하도록 private 선언을 합니다. private SingleObject(); // 인스턴스 ..

IT/Others 2022.08.27

[spring core] Databuffer

회사에서 클라우드로 서비스를 옮겼습니다. 그런데 메모리 누수가 발생해서 분석해보니 Databuffer 해제를 해주지 않아서 발생한 문제였습니다. 도대체 databuffer가 무엇이기 때문에 이러한 문제가 발생했는지 알기 위해서 정리했습니다. Databuffer를 알기 위해서 Buffer부터 살펴보기로 했습니다. Buffer 버퍼는 두 장치간에 속도차이로 인한 처리 속도 지연을 방지하기 위해서 도입된 개념입니다. 아래 예시를 보겠습니다. CPU는 100개의 작업을 처리할 수 있지만, DISK는 1개를 처리할 수 있습니다. DISK가 1개를 처리하는 동안에는 CPU의 프로세스가 잡혀 있기 때문에 CPU도 1개를 처리할 때까지 기다려야 합니다. 그렇다면, CPU는 1/100를 효율을 발휘하고 있습니다. 이때,..

IT/Spring 2022.08.20
반응형