티스토리

검색하기내 프로필

블로그 홈

뽀루피의 개발스토리

구독자
1

구독하기 방명록
신고

인기글

  • 동기/비동기 & 블로킹/논블로킹공감수0댓글수2조회 2
  • Private IP vs Public IP공감수1댓글수4조회 1
  • DHCP(Dynamic Host Configuration Protocol)공감수0댓글수0조회 1

주요 글 목록

  • SQL) 재귀 CTE글 내용

    프로그래머스 SQL 고득점 kit를 풀던 중 재귀 CTE를 사용하는 문제가 있어 공부한 내용을 정리해보고자 한다. https://school.programmers.co.kr/learn/courses/30/lessons/301651  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr CTE란?WITH 키워드로 선언하는 나타내는 재사용 가능한 서브쿼리로 프로그래밍 언어로 따지면 일종의 메서드로 볼 수 있다.CTE는 FROM절, JOIN 절, WHERE 절 등 다양한 위치에서 쿼리의 일부처럼 사용할 수 있다.또한 쿼리 내에서 여러번 참조할 수 있어 중복을 피하는데 유용하다. CTE의 기본 구문WITH CTE_n..

    좋아요0
    댓글0작성시간2025. 3. 5.
    게시글 이미지
  • 우아한테크코스 7기 프리코스 최종 회고글 내용

    안녕하세요! 오늘 프리코스 결과가 나온김에 작성하는 최종 회고입니다결과는 아쉽게도 탈락이었지만 여태까지의 과정을 정리해보면서 탈락의 원인이 무엇이었는지 스스로나마 찾아보고 반성해보고자 합니다.자소서우테코 지원 자기소개서에서는 크게 지원동기, 몰입 경험, 프리코스 목표 이 세가지를 질문했는데 이 중에서 몰입 경험과 프리코스 목표 부분이 개인적으로 아쉽게 느껴졌습니다.저는 몰입 경험 문항이 우테코에서 얼마나 몰입할 수 있겠는가를 묻는 문항이라고 생각했고, 프리코스에 참여하기 이전에 부트캠프를 수료한 경험이 있어 이 경험을 설명하면 충분한 몰입 경험 대답이 되겠다 싶어서 작성했습니다.하지만 저는 경험들을 나열했을 뿐 어떤 기술에 대해서 파고들어봤다, 어떤 것까지 구현해봤다 같은 '몰입'에 대해서는 작성하지 못..

    좋아요1
    댓글1작성시간2024. 12. 9.
    게시글 이미지
  • 도커 컨테이너 다루기글 내용

    도커 컨테이너의 생애주기도커 컨테이너는 실행 중, 정지, 파기 3가지 상태를 갖는다. 실행 중 상태docker container run 명령으로 Dockerfile에 포함된 인스트럭션에 정의된 애플리케이션(컨테이너)을 최초 실행한 시점의 상태는 실행 중이다.실행이 끝나면 정지 상태가 된다. 정지 상태컨테이너를 정지시키면 디스크에 종료 시점의 상태가 저장돼 남는다.그러므로 정지시킨 컨테이너를 다시 실행할 수 있다. 파기 상태정지 상태의 컨테이너는 파기하지 않는 이상 디스크에 그대로 남아있다.컨테이너를 자주 생성하고 정지해야 한다면 디스크를 차지하는 용량이 늘어나므로 불필요한 컨테이너를 파기하는 것이 좋다.다만 한 번 파기한 컨테이너는 다시 실행할 수 없다. docker container run - 컨테이너..

    좋아요0
    댓글0작성시간2024. 12. 7.
  • 도커 이미지 다루기글 내용

    도커 명령은 크게 이미지에 대한 명령과 컨테이너에 대한 명령 두가지로 나뉜다. 도커 이미지 다루기도커 이미지는 빌드할 때마다 다시 생성되는데, 내용의 해시값을 이미지 ID로 삼기 때문에 내용이 바뀌면 이미지 ID도 새 값이 부여된다. 도움말옵션에 대한 도움말docker help이미지 하위 옵션에 대한 도움말docker image --help docker image build - 이미지 빌드docker image build는 Dockerfile에 기술된 구성을 따라 도커 이미지를 생성하는 명령이다.docker image build -t 이미지명[:태그명] Dockerfile의_경로-t 옵션은 이미지명과 태그명을 붙이는 것으로 필수적으로 사용된다. 예를 들어 Dockerfile이 현재 작업 디렉터리에 있다면..

    좋아요0
    댓글0작성시간2024. 12. 7.
  • 컨테이너로 애플리케이션 실행하기글 내용

    컨테이너로 애플리케이션 실행하기image 받아오기docker image pull 이미지명[:태그명] // ex) docker image pull gihyodocker/echo:latest컨테이너 실행컨테이너 실행을 하려면 docker에 이미지가 존재해야한다.예시는 -p [호스트포트:컨테이너포트]를 통해 포트포워딩을 수행한다.docker container run [옵션] 이미지명 [:태그명] // ex) docker container run -t -p 9000:8080 gihyodocker/echo:latest -d 옵션을 붙여 백그라운드로 컨테이너를 실행할 수도 있다.네트워크 주소 접근curl http://localhost:9000/컨테이너 정지docker stop 컨테이너명컨테이너 삭제컨테이너를 삭제하..

    좋아요1
    댓글1작성시간2024. 12. 6.
  • 모던 자바 인 액션 - chapter 7, 8 병렬 데이터 처리와 성능, 컬렉션 API 개선글 내용

    병렬 데이터 처리와 성능자바 7은 쉽게 병렬화를 수행하면서 에러를 최소화할 수 있도록 fork/join 프레임워크 기능을 제공한다.병렬 스트림컬렉션에 parallelStream을 호출하면 병렬 스트림이 생성된다. 병렬 스트림은 각각의 스레드에서 처리할 수 있도록 스트림 요소를 여러 청크로 분할한 스트림이다. 따라서 병렬 스트림을 이용하면 모든 멀티코어 프로세서가 각각의 청크를 처리하도록 할당할 수 있다.stream에서 parallel을 호출하면 내부적으로 이후 연산이 병렬로 수행한다. 반대로 sequential로 병렬 스트림을 순차 스트림으로 바꿀 수 있다. 이 두 메서드를 이용해서 병렬로 실행할지 순차로 실행할지 제어할 수 있다. 이 중 최종적으로 호출된 메서드가 전체 파이프라인에 영향을 미친다.병렬 ..

    좋아요0
    댓글0작성시간2024. 11. 30.
  • 모던 자바 인 액션 - chapter 6 스트림 데이터 수집글 내용

    스트림으로 데이터 수집컬렉터Collector 인터페이스는 어떻게 구현하느냐에 따라 스트림에 어떤 리듀싱 연산을 수행할지 결정된다. Collectors 유틸리티 클래스는 자주 사용하는 컬렉터 인스턴스를 손쉽게 생성할 수 있는 정적 팩토리 메서드를 제공한다.Collectors에서 제공하는 메서드의 기능은 크게 세가지로 구분할 수 있다.스트림 요소를 하나의 값으로 리듀스하고 요약요소 그룹화요소 분할리듀싱과 요약counting: 개수를 카운트한다maxBy, minBy: 최대 혹은 최소를 만족하는 요소를 찾는다summingInt: 객체를 int로 매핑하는 인수를 받아 합 계산averagingInt: 객체를 int로 매핑하는 인수를 받아 평균을 계산한다summarizingInt: 요소 수, 합계, 평균, 최대값, ..

    좋아요1
    댓글1작성시간2024. 11. 29.
  • 모던 자바 인 액션 - chapter 4, 5 스트림과 활용글 내용

    스트림 스트림이란 무엇인가?선언형으로 컬렉션 데이터를 처리할 수 있도록 자바 8 API에 추가된 기능이다. 또한 멀티스레드 코드를 구현하지 않아도 손쉽게 데이터를 병렬 처리할 수 있다.스트림의 장점은 다음과 같다.선언형으로 코드를 구현할 수 있다.여러 블록연산을 연결해서 복잡한 데이터 처리 파이프라인을 만들 수 있다.병렬 스트림을 사용하여 데이터 처리 속도를 높일 수 있다.원본 데이터를 변경하지 않으므로 데이터의 불변성을 유지할 수 있다.지연 연산을 통해 필요할 때만 연산을 수행하여 성능을 최적화할 수 있다.** 지연 연산: filter, map과 같은 중간 연산은 collect와 같은 최종 연산이 호출되었을 때만 실행된다.컬렉션과 스트림컬렉션은 현재 자료구조가 포함하는 모든 값을 메모리에 저장하는 자료..

    좋아요1
    댓글1작성시간2024. 11. 20.
  • 모던 자바 인 액션 - chapter 2, 3 동작 파라미터화, 람다 표현식글 내용

    동작 파라미터화동작 파라미터화는 메서드 내부적으로 다양한 동작을 수행할 수 있도록 코드를 메서드 인수로 전달한다. 이는 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. 동작 파라미터화 방법기존엔 클래스를 통한 동작을 메서드의 인수로 전달하는 방법을 통해 구현해야 했다. 익명 클래스로도 어느 정도 코드를 깔끔하게 만들 수 있지만 자바 8에서는 인터페이스를 상속받아 여러 클래스를 구현해야 하는 수고를 없앨 수 있는 람다(익명 함수)를 제공한다.선택 조건을 결정하는 인터페이스 선언(Predicate)public interface ApplePredicate { boolean test(Apple apple);}클래스를 통한 동작 파라미터화public class AppleGreenColorPredicate..

    좋아요2
    댓글1작성시간2024. 11. 19.
  • 모던 자바 인 액션 - chapter 1 자바 8 무슨 일이 일어나고 있는가글 내용

    프로그래밍 분야는 빅데이터라는 도전에 직면하면서 멀티코어 컴퓨터나 컴퓨팅 클러스터를 이용해서 빅데이터를 효과적으로 처리할 필요성이 증가했다. 또한 병렬 프로세싱을 활용해야 하는데 이전의 자바로는 충분히 대응할 수 없었다. 자바 8부터 추가되는 기능은 현 시장에 요구하는 기능을 효과적으로 제공한다. 이 책은 자바 8에서 제공하는 기능의 모태인 세 가지 프로그래밍 개념을 상세히 설명한다.세 가지 프로그래밍 개념스트림 처리스트림 API는 파이프라인(중간 연산이 연결되어 하나의 연산을 이루는 것)을 만드는데 필요한 많은 메서드를 제공한다. 또한 Thread를 사용하지 않으면서 병렬성을 손쉽게 얻을 수 있다.동작 파라미터화로 메서드에 코드 정달하기메서드를 파라미터화 해서 전달가능하다. 함수형 프로그래밍 기술을 활..

    좋아요0
    댓글0작성시간2024. 11. 19.
  • 우아한테크코스 7기 프리코스 중간 소감글 내용

    우아한 테크코스(이하 우테코) 프리코스 3주차 미션을 마치고 작성하고 있습니다.저는 우테코에 대해 큰 기대를 하고 있었습니다. 어디에 나와있는 것은 아니지만 개발 지망생들에게 알려진 바로는 부트캠프 1티어 중에 1티어라고 알려졌기 때문이죠. 그 중에서도 강점은 코드리뷰 시스템에서 드러난다고 들었습니다. 이러한 우테코의 코드리뷰 시스템을 프리코스를 하며 작게나마 체험해볼 수 있었습니다.  프리코스는 크게 과제, 코드 리뷰로  나눌 수 있습니다. 이 중에서 과제만 필수이고 코드리뷰는 선택입니다. 하지만 프리코스를 진행하면서 있었던 대부분의 성장은 코드리뷰 활동에서 이뤄졌다고 생각합니다. 1주차 과제를 보면 지금의 코드와 엄청난 차이가 느껴지는데요.    3주차 미션을 마친 시점에서 제가 이 코드를 피드백해보..

    좋아요6
    댓글3작성시간2024. 11. 5.
    게시글 이미지
  • 스트림(2) - Stream API의 다양한 연산글 내용

    스트림 API가 지원하는 다양한 연산에 대해서 알아보자. 요약  필터링.filter()filter 메소드는 predicate(boolean을 반환하는 함수)를 인수로 받아서 true를 반환하는 모든 요소를 포함하는 스트림을 반환한다.List vegetarianMenu = menu.stream() .filter(Dish::isVegetarian) .collect(toList());// 채식요리 .distinct()스트림 요소의 중복을 제거하는 distinct 메소드도 지원한다.(중복 여부는 equals와 hashCode로 결정된다)List numbers = Arrays.asList(1,2,3,4,..

    좋아요2
    댓글0작성시간2024. 10. 26.
    게시글 이미지
  • 정보처리기사 필기, 실기 후기(+ 팁)글 내용

    정보처리기사 2024년도 2회 기사 시험 필기, 2024년도 3회 기사 시험 실기를 보고 합격했다.시험을 봤다는 기록도 남길겸 블로그에 소감을 남기려 한다 나는 비전공자로써 진로를 개발쪽으로 틀은 것은 불과 1년 밖에 되지 않았다.정보처리기사에 나오는 유형 중 내가 알고 있는 것은 SQL, 프로그래밍 언어가 전부였다.그것도 겉핥기 식이었다.SQL은 DDL 밖에 알지 못했는데 DML, DCL이란 것도 나온다또한 내 주 프로그래밍 언어가 Java였는데 C언어, 파이썬도 함께 나온다 하지만 난 주전공에서 기사를 이미 한번 따본 경험이 있다.결국 기사 시험은 똑같을 거란 생각에 책도 사지 않은 채 내 방식대로 공부했다. 내 방식은 이 공부법 영상과 일치한다. 자격증, 기사 시험을 앞둔 사람들은 꼭 봤으면 하는 ..

    좋아요2
    댓글0작성시간2024. 10. 26.
    게시글 이미지
  • equals와 hashCode글 내용

    내가 만든 객체로 List를 만들었는데 List 내에 중복되는 객체가 있다면 제거하고 싶다고 가정해보자.List peopleList = new ArrayList();people.add(new Person("loopy"))people.add(new Person("loopy"))Set peopleSet = new HashSet(people);if(peopleList.size() != peopleSet.size()) { throw new IllegalArgumentException();} 이 코드를 진행했는데 Exception이 발생하지 않고 다음 코드로 넘어간다. 왜일까?정답은 내가 만든 객체에서 equals와 hashCode 메소드를 재정의(override)하지 않았기 때문이다.  equals와 ha..

    좋아요0
    댓글0작성시간2024. 10. 25.
    게시글 이미지
  • 스트림(1) - Stream API 개요글 내용

    스트림이란?데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소 스트림은 함수형 프로그래밍 언어와 데이터베이스에서 일반적으로 지원하는 연산을 지원한다. 예를 들어 filter, map, find, match, sort 등으로 데이터를 조작할 수 있다. 스트림 연산은 순차적으로 또는 병렬로 실행할 수 있다.  예시를 보자.menu.stream() .filter(dish -> dish.getCalories() > 300) .map(Dish::getName) .limit(3) .collect(toList());  1. 데이터 소스 menu는 연속된 요소를 스트림에 제공한다.2. stream()을 통해 스트림을 얻고3. 데이터 처리 연산(filter, map, limit, collec..

    좋아요6
    댓글4작성시간2024. 10. 23.
  • 람다, 메소드 참조 활용하기글 내용

    https://poloopy.tistory.com/50 람다 표현식람다 표현식은 메소드로 전달할 수 있는 익명 함수를 단순화한 것이다. 특징익명보통의 메소드와 달리 이름이 없다.함수메소드처럼 특정 클래스에 종속되지 않아 함수라고 부른다.전달람다 표poloopy.tistory.comhttps://poloopy.tistory.com/51 메소드 참조메소드 참조는 람다 표현식을 더 간결하게 작성할 수 있는 기능이다.람다 표현식이 단순 기존 메소드를 호출하는 경우 사용할 수 있다. 메소드 참조의 기본 구조 클래스 또는 객체 이름이중 콜poloopy.tistory.com 람다와 메소드 참조에 대해 이론적으로 익혔다면 어떤식으로 활용할지 알아보자.좋은 예시로 List API의 sort() 메소드가 있다. sort ..

    좋아요1
    댓글1작성시간2024. 10. 21.
  • 메소드 참조글 내용

    메소드 참조는 람다 표현식을 더 간결하게 작성할 수 있는 기능이다.람다 표현식이 단순 기존 메소드를 호출하는 경우 사용할 수 있다. 메소드 참조의 기본 구조 클래스 또는 객체 이름이중 콜론(::) 연산자메소드 이름예시는 다음과 같다.Integer::parseInt   메소드 참조의 종류메소드 참조에는 4가지 유형이 있다. 1. 정적 메소드 참조 (Class::staticMethod)다음과 같은 람다 표현식에 사용할 수 있다.(String str) -> Integer.parseInt(str) 위의 식은 메소드 참조를 활용하면 다음과 같이 변경된다.Integer::parseInt 2. 다양한 형식의 인스턴스 메소드 참조 (Class::instanceMethod)다음과 같은 람다 표현식에 사용할 수 있다.(S..

    좋아요0
    댓글1작성시간2024. 10. 21.
  • 람다 표현식글 내용

    람다 표현식은 메소드로 전달할 수 있는 익명 함수를 단순화한 것이다. 특징익명보통의 메소드와 달리 이름이 없다.함수메소드처럼 특정 클래스에 종속되지 않아 함수라고 부른다.전달람다 표현식은 메소드 인수로 전달하거나 변수로 저장할 수 있다.간결성코드가 간결해진다. 람다 표현식은 파라미터, 화살표, 바디로 이루어진다.파라미터(Apple a1, Apple a2)화살표->바디a1.getWeight().compareTo(a2.getWeight()); 그렇다면 람다 표현식은 어디에 사용할 수 있는걸까?바로 함수형 인터페이스의 구현에 사용 가능하다 함수형 인터페이스란?함수형 인터페이스의 예시에는 Predicate, Comparator, Runnable 등이 있다public interface Predicate { ..

    좋아요3
    댓글1작성시간2024. 10. 21.
  • MySQL 문법 정리글 내용

    AS (별칭 정의)속성이나 테이블에 별칭을 설정하는 것SELECT 절에서의 AS:SELECT 절에서 정의된 별칭은 WHERE 절에서 사용할 수 없다.ORDER BY, GROUP BY, HAVING 절에서 사용할 수 있다.FROM 절에서의 AS (테이블 별칭):FROM 절에서 정의된 테이블 별칭은 쿼리의 모든 부분에서 사용할 수 있다.서브쿼리에서의 AS:외부 쿼리에서는 사용할 수 없다. 단, 해당 서브쿼리를 직접 포함하는 상위 쿼리에서는 사용할 수 있다. WITH (반복 함수)복잡한 쿼리를 쉽게 풀어쓸 수 있다.임시 테이블 생성WITH절은 쿼리 내에서 임시로 사용할 수 있는 이름을 붙인 서브쿼리를 생성한다.재사용성동일한 서브쿼리를 여러번 써야할 때 WITH절을 통해 한번만 정의하고 여러번 참조할 수 있다...

    좋아요0
    댓글0작성시간2024. 8. 30.
  • Spring 처음 시작할 때 설정글 내용

    1. spring 설정 initializrhttps://start.spring.io/ gradle - java - 최신버전 - 그룹명(회사명) - 이름(애플리케이션 명) dependenciesSpring Data JPA : JPA와 Data JPA가 동시에 의존성 주입됨lombok : getter나 setter와 같은 개발자들에게 반복되는 코드들을 줄여주는 툴사용하는 DB : DB 의존성을 가져와야 연결 가능Spring Web : Apache Tomcat을 이용해 Spring MVC 애플리케이션을 만들어주는 의존성 generate - 압축 풀기 - ide에서 build gradle 파일 open  2. build 속도 향상 설정settings - build 검색 - Gradle - Build and Ru..

    좋아요0
    댓글0작성시간2024. 8. 28.
    게시글 이미지
문의안내
  • 티스토리
  • 로그인
  • 고객센터
© Kakao Corp.