본문 바로가기

분류 전체보기

[모던 자바 인 액션] chapter 2. 동작 파라미터화 코드 전달하기 [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) 어떤 상황에서 일을 하든 소비자 요구사항은 항상 바뀐다. 이렇게 시시각각 변하는 사용자 요구 사항에 어떻게 대응해야 할까? 특히 우리의 엔지니어링적인 비용이 가장 최소화될 수 있으면 좋을 것이다. 그뿐 아니라 새로 추가한 기능은 쉽게 구현할 수 있어야 하며 장기적인 관점에서 유지보수가 쉬워야 한다. 동작 파라라미터화(behavior parameterization)을 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. 동작 파라미터화란 아직은 어떻게 실행할 것이지 결정하지 않은 코드 블..
[Database] Redis 찍먹 Redis란 공식 사이트 소개 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-dis..
[웹을 지탱하는 기술] chapter 01. 웹이란 무엇인가? [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 01. 모든 것의 기반인 웹 오늘 날 컴퓨터에 있어서 가장 중요한 소프트웨어는 웹을 열람하는 소프트웨어인 브라우저(Browser)다. 일기 예보나, 뉴스, 물건 구입 등 브라우저를 통해 다양한 용도로 컴퓨터를 활용한다. 브라우저를 통해 인터넷 저편에 있는 웹 서버와 통신을 하면서 실현되고 있다. 02. 다양한 웹의 용도 웹 사이트 Yahoo!, Amazon, Google 등 다양한 서비스를 제공하는 웹 사이트들이 가장 가까운 예다. 웹 사이트의 시스템 구성은 PC베이스의 UNIX 서버 1대인 경우부터 수 천, 수 만대의 서버를 조합한 대규모인 경우까지 다양하다. 하지만 웹 사이트 내부가 어떤 구성을 하고 있는지 클라이언트는 ..
[모던 자바 인 액션] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) 자바는 새로운 기능과 더불어 계속 발전했다. 자바의 변화를 우리가 눈여겨봐야 하는 이유가 뭘까? 1.1 역사의 흐름은 무엇인가? 자바 역사를 통틀어 가장 큰 변화가 자바 8에서 일어났다. 예를 들어 사과 목록을 무게순으로 정렬하는 고전적 코드를 자바 8에서는 다음과 같이 작성할 수 있다. // 고전적인 코드 Collections.sort(inventory, new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeig..
[프로그래머스] 2021 카카오 채용연계형 인턴십 - 미로 탈출 (Java) 코딩테스트 연습 - 미로 탈출 4 1 4 [[1, 2, 1], [3, 2, 1], [2, 4, 1]] [2, 3] 4 programmers.co.kr 문제 설명 신규 게임 ‘카카오 미로 탈출’이 출시되어, 라이언이 베타테스터로 참가했습니다. 위 예시 그림은 카카오 미로 탈출의 초기 상태를 나타냅니다. 1번부터 3번까지 번호가 붙어있는 3개의 방이 있고, 방과 방 사이를 연결하는 길에는 이동하는데 걸리는 시간이 표시되어 있습니다. 길은 화살표가 가리키는 방향으로만 이동할 수 있습니다. 미로에는 함정이 존재하며, 함정으로 이동하면, 이동한 함정과 연결된 모든 화살표의 방향이 바뀝니다. 출발지점인 1번 방에서 탈출이 가능한 3번 방까지 이동해야 합니다. 탈출하는데 걸리는 최소 시간을 구하려고 합니다. 그림의 ..
[데이터베이스] 인덱스(Index) 1. Index? 위키백과는 다음과 같이 설명하고 있다. - **인덱스는 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료구조** - 인덱스는 테이블 내의 1개 이상의 컬럼을 이용하여 생성됨 - 고속의 검색 동작뿐만 아니라 레코드 접근과 관련 효율적인 순서 매김 동작에 대한 기초 제공 - 인덱스를 저장하는 데 필요한 디스크 공간은 보통 테이블을 저장하는 데 필요한 디스크 공간보다 작음 (보통 인덱스는 키-필드만 갖고 있고, 테이블의 다른 세부 항목들은 갖고 있지 않기 때문) - 관계형 데이터베이스에서는 인덱스는 테이블 부분에 대한 하나의 사본 → 모든 레코드에서 full-scan하는 것이 아니라 색인화(특정 범위 내로 한정. 따로 파일로 저장)하여 데이터를 찾는 기술 → 검색 연산을 ..
[프로그래머스] 스택/큐 - 다리를 지나는 트럭 (Java) 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7..
[프로그래머스] Summer/Winter Coding(2019) - 지형 이동 (Java) 코딩테스트 연습 - 지형 이동 [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr 문제 설명 N x N 크기인 정사각 격자 형태의 지형이 있습니다. 각 격자 칸은 1 x 1 크기이며, 숫자가 하나씩 적혀있습니다. 격자 칸에 적힌 숫자는 그 칸의 높이를 나타냅니다. 이 지형의 아무 칸에서나 출발해 모든 칸을 방문하는 탐험을 떠나려 합니다. 칸을 이동할 때는 상, 하, 좌, 우로 한 칸씩 이동할 수 있는데, 현재 칸과 이동하려는 칸의 높이 차가 height 이하여야 합니다. ..