분류 전체보기

    자료구조 기본 개념

    자료구조란? 용어: 자료구조, 데이터구조, data structure 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미 코드 상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를 구조화해야 함 어떤 데이터 구조를 사용하느냐에 따라, 코드 효율이 달라짐 1. 배열 (Array) 데이터를 나열하고, 각 데이터를 인덱스에 대응해주고, 인덱스로 데이터를 접근할 수 있도록 구성된 데이터 구조 파이썬에서는 리스트 타입이 배열 기능을 제공하고 있음 배열이 왜 필요한가? 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 배열의 장점: 인덱스로 인한 빠른 접근 가능 배열의 단점: 미리 배열의 크기를 설정해줘야 하므로, 데이터를 추가하는 ..

    3. 스프링부트 -> 도커 이미지 -> 도커허브

    1. 개요 이번 스프링부트로 간단한 프로젝트를 만들고 이를 도커 이미지로 만드는 두가지 방식으로 이미지를 만들어서 실행해보고 도커 이미지를 개인 도커 허브 리포지토리에 올리기까지 해보겠습니다. 2. 스프링부트 프로젝트 start.spring.io/ 스프링부트 스타터 페이지에서 프로젝트를 하나 만들어 줍니다. project -> gradle project language -> java Packaging -> Jar Java -> 8 로 선택하시고 의존성읜 web만 추가해줍니다. Project Metadata은 원하시는 데로 작성하시고 인텔리제이로 해당 프로젝트를 열어줍니다. 컨트롤러 디렉토리를 하나 만들어서 간단한 RestController를 만들어줍니다. 여유되시면 test도 ? ㅎ 2. 도커 이미지 만..

    2. 도커 설치와 각종 명령어

    vmware, 리눅스 설정 wellbell.tistory.com/3?category=976634 도커설치 wellbell.tistory.com/4?category=976634 도커 설치를 위한 vmware, 도커 설치를 이전에 작성했던 포스팅으로 대체하고 도커 명령어를 다루도록 하겠습니다. sudo 없이 도커 명령어 쓰기 사용자에게 도커 권한을 주어서 sudo 없이 사용할수 있도록 합시다. $ sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기 $ sudo usermod -aG docker 사용자명 # 사용자에게 권한주기 1. 이미지 관련 명령어 이미지 목록 보기 서버에 있는 모든 이미지의 정보를 볼 수 있습니다. $ docker images 이미지 검색 이미지의 ..

    1. 도커 간단한 개념

    도커는 컨테이너 기반의 오픈소스 가상화 플랫폼 기존 하이퍼바이저를 통한 os 가상화가 아닌 os위에 도커엔진을 두어서 리눅스 컨테이너로 프로세스를 격리시켜 돍집적으로 실행되는 형태 게스트 os을 설치하는 등의 overhead가 발생하지않아서 생성 속도가 매우 빠르다. 도커를 이요하면 환경에 구애받지않고 애플리케이션을 신속하게 배포 및 확장할수 있다. 도커의 핵심 개념 1. 컨테이너 앞서 설명한 부분으로 이미지를 보면 vm을 통해서 가상화를 진행하게 되면 게스트 os을 설치하는등 overhead가 발생하게 된다. 이러한 추가적인 os설치는 성능문제가 발생하게 된다. 이와 달리 도커는 리눅스 컨테이너를 통해서 프로세스를 격리하는 방식을 사용하게 된다. 2. 이미지 컨테이너 실행에 필요한 파일과 설정값등을 포..

    프로그래머스 - 캐쉬 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17680

    프로그래머스 - N진수 게임 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17687# 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 0부터 특정 진법으로 변환한 값을 m 명이 t번 말하는 경우까지 구하고 해당 문자열에서 튜브의 순서의 값들만 구해서 리턴하면 끝이다. 사실상 숫자를 특정 진법으로 변환하는 방법을 알면 풀수있는 문제라고 볼수있다. 8를 2진법으로 하면 1000인데 이를 보면 8 / 2 = 4 8 % 2 = 0 4 / 2 = 2 4 % 2 = 0 2 / 2 = 1 2 % 2 =..

    [우아콘2020] QUERYDSL 내용 정리

    우아한 형제들에서 코로나로 인해서 2020 우아콘을 온라인으로 진행햇었던것을 보고 내용이 너무 좋아서 정리해놓으면 좋을거 같다고 생각했습니다. 주제는 적제된 데이터가 1000만건에서 10억건까지 되는 과정에서 얻은 Querydsl-JPA 개선 팁입니다. 테스트 환경으로 java(OpenJDK 1.8.0_252) Querydsl(Querydls-JPA 4.2.1) Database(AWS Aurora MySQL 5.6 1.19.6) MySQL 5.6 -> 인덱스 컨디션 푸시다운과 서브쿼리의 최적화 QueryDSL -> 버젼별 문법 변화 Querydsl은 버전에 따라서 문법이 변화하는 경우가 많아서 버전체크가 중요합니다. 4.0.1 버전까지는 list 조회 시 .list() 메서드를 사용 4.0.2 버전부터는..

    프로그래머스 - 뉴스 클러스터링 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문자열 두개를 소문자로 바꾸고 정규식을 이용해서 소문자 알파벳으로 이루어진 키만 map에 등록합니다. 첫번째 문자열의 map을 순회하면서 두번째 문자열에 key값에 포함되면 교집합 count + 1를 해주고 합집합에는 해당 키값의 value값을 더 작은 값으로 만들어줍니다. 포함되지 않으면 합집합에 추가 해줍니다. 이후 합집합 map을 순회하면서 개수를 ..