티스토리

검색하기내 프로필

블로그 홈

프로그래멍

구독자
3

백엔드 & 알고리즘

구독하기 방명록
신고

주요 글 목록

  • [2] [개인공부] 스레드 세이프티(Thread safety) 활용. - synchronized vs cas글 내용

    Blocking 방식인 "synchronized"Non-Blocking 방식인 "CAS"무엇이 더 좋다기보다 서로 사용해야할 상황이 다르다는 것을 알게됐다.그렇다면 synchronized와 cas를 어떤 상황에 사용하는게 좋을지 알아보자. 동기공부중에 이런 궁금증이 생겨났다.블락 방식은 단순히 안전하고 느릴까? 논블락은 블락보다 항상 빠를까? 요청 실패 횟수가 많으면 성능에 영향을 미치진 않을까? 그래서 이런 고민들을 해결하기 위해 스스로 위 생각들에 대해 이론을 정리하고 실험해보기로 했다.아래 이론은 내가 공부하고 정리한 내용이기 때문에 정답은 아닐 수 있다 참고용으로만 봐주시길 바란다. 이론 이전의 카운트업 예시처럼, 멀티스레드로 공유변수에 대해 어떤 연산을 N회 수행하는 코드가 있다고 가정하자. 연..

    좋아요3
    댓글2작성시간2024. 4. 19.
  • [1] [개인공부] 스레드 세이프티(Thread safety) 이해.글 내용

    오늘도 난 출근 준비를 한다. 아침에는 어찌나 일어나기가 싫은지 최대한 잠을 자게 된다. 그래서 난 늘 지각을 걱정하며 바삐 아침을 보낸다. 일어나서 식빵을 토스터기에 넣고 빵이 구워지는 동안 샤워를 한다. 샤워를 하며 뉴스를 듣고 오늘 무슨 옷을 입을 지 미리 생각한다. 이렇게하면 30분이면 출근 준비 완료다. 만약 이런 아침 준비 과정을 하나씩 진행한다면 족히 1시간은 걸리지 않을까..?  작업의 효율성동시에 여러 일을 할 수 있다면 시간을 절약할 수 있다. 시간을 절약한다는 것은 곧 일의 효율이 올라간다는 것이다.이 논리로 컴퓨터에서도 동시에 여러 작업을 처리하는 것이 빠를 것이라는 생각이 든다.  병렬 처리 vs 동시 처리여러 작업을 처리 할때 고려해야 할 사항이 있다.CPU는 멀티 코어를 지원하..

    좋아요1
    댓글0작성시간2024. 4. 10.
  • [0] [개인 공부] 스레드 세이프티(Thread safety)글 내용

    앞으로 회사에 멀티스레드를 적용할 일이 있을 것 같아 관련 지식을 미리 공부를 해두려고 한다.3주라는 시간 동안 최대한 많이 배워서 회사에 기여하는것이 목표다.  주제스레드 세이프티(Thread safety)  일정3월26일 : 주제 선정4월9일 : 스레드 세이프티 문제 해결 방법 공유4월16일 : 더 나은 방법에 대한 고민 내용 공유

    좋아요0
    댓글0작성시간2024. 3. 26.
  • [2] 인X타그램에서 게시물 작성 시 어떤일이 일어날까? - multipart/form-data편글 내용

    HTTP의 ‘multipart/form-data’는 이미지, 텍스트, 비디오 등을 단일 HTTP 요청으로 전송할 수 있다는 이점이 있다.   파일 업로드와 파일 업로드 정보를 한번에 처리하여 성능을 높이자.인X타그램은 한 번의 API 요청으로 사진, 게시글 텍스트, 태그, 위치 정보 등을 전부 처리하고 싶을 것이다. 이렇게 하지 않으면 각 요청마다 추가적인 트래픽이 발생하고 서버 부하가 늘어날 수 있기 때문이다. 어플리케이션 서버에서는 클라이언트에서 전송한 multipart/form-data 형식의 요청을 해석해야 한다.이를 위해 Spring의 MultipartResolver는 HTTP 요청의 multipart/form-data를 해석하여 파일과 메타데이터를 추출하고 처리한다.   MultipartRes..

    좋아요1
    댓글0작성시간2024. 3. 19.
  • [1] 인X타그램에서 게시물 작성 시 어떤일이 일어날까? - multipart/form-data편글 내용

    인X타그램에서 게시물 업로드 버튼을 누르면 무슨일이 일어날까? (아 물론 실제 인X타는 안그럴 수도 있음..) 인X타그램 데이터 프로세스 나는 인스타그램 업로드 과정을 5가지 단계로 정의했다.사진 선택업로드 요청서버에서 요청 처리파일 및 메타데이터(사진 관련 정보) 처리업로드 완료 및 후속 처리위 과정을 그림으로 정리하면 이런 느낌이다.  ‘통신’은 어떻게 되는걸까? 그렇다면 어떻게 내가 올린 게시물이 데이터 저장소까지 도달할 수 있는걸까? 그건 바로...우린 원하든 원하지 않든 웹(Web)세상에 살고 있다. 배민을 이용할 때도 로켓배송을 이용할 때도… 웹은 인터넷이라는 네트워크 상에서 동작하는 서비스다. 그리고 이 인터넷을 통해 서로 다른 서버끼리 통신을 할 수 있다.그래서 내가 업로드한 게시물은 인터..

    좋아요1
    댓글1작성시간2024. 3. 17.
    게시글 이미지
  • [MySQL] 레코드 기반의 잠금이란?글 내용

    락(Lock)이란?Database의 트랜잭션 처리의 순차성을 보장하기 위한 방법.레코드(Record)란?Database의 행 부분. Tuple이 레코드다.레코드 기반의 잠금 = 데이터의 튜플(인덱스)을 기준으로 Lock을 설정하는 행위.→ 따라서 레코드 기반의 잠금을 수행한다면, 높은 동시성 처리가 가능하며 안정적이며 성능이 뛰어나다. *만약 TABLE의 Index가 정의되지 않았다면?MySQL :: MySQL 8.0 Reference Manual :: 15.7.1 InnoDB Locking MySQL :: MySQL 8.0 Reference Manual :: 15.7.1 InnoDB LockingMySQL 8.0 Reference Manual  /  ...  /  The InnoDB Storage En..

    좋아요0
    댓글0작성시간2023. 3. 5.
    게시글 이미지
  • 프로그래머스 가장 큰 수(Java) 풀이글 내용

    문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=java 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원..

    좋아요0
    댓글0작성시간2023. 1. 9.
  • 프로그래머스 H-Index(Java) 풀이글 내용

    문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42747?language=java 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과..

    좋아요0
    댓글0작성시간2023. 1. 9.
    게시글 이미지
  • Intellij JSP file upload 문제 해결글 내용

    에러 내용: 아티팩트 JDBC-WorkSpace:war exploded: 아티팩트 배포 중 오류가 발생했습니다. 자세한 내용은 서버 로그를 참조하세요. 로그 보기 더보기 에러로그 [2022-09-01 09:32:44,858] 아티팩트 JDBC-WorkSpace:war exploded: 아티팩트 배포 중입니다. 잠시 기다려 주세요... 01-Sep-2022 09:32:45.066 SEVERE [RMI TCP Connection(5)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke 메소드 [manageApp]을(를) 호출하는 중 예외 발생 java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생 at ..

    좋아요1
    댓글0작성시간2022. 9. 1.
    게시글 이미지
  • No suitable driver found for jdbc:postgresql://localhost:5432/database 에러 해결글 내용

    인텔리제이 Tomcat 서버에서 postgresql 사용 시 org.postgresql.Driver를 찾지 못하는 문제 발생 해결 Tomcat->lib->postgresql jdbc driver 저장. *(Driver intallation link : https://jdbc.postgresql.org/download.html) 사용 환경: intellij, Maven, JavaEE-webapp 라이브러리 : Tomcat, Servlet(4.0.1), Postgresql(42.4.1) 참고 페이지 : https://stackoverflow.com/questions/19753004/classnotfoundexception-org-postgresql-driver-with-connection-pooling-ex..

    좋아요1
    댓글0작성시간2022. 8. 31.
    게시글 이미지
  • 프로그래머스 정수 삼각형 파이썬 풀이 - 다이나믹프로그래밍(DP)글 내용

    문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 더보기 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 retu..

    좋아요1
    댓글0작성시간2022. 8. 23.
    게시글 이미지
  • 프로그래머스 등굣길 파이썬 풀이 - 다이나믹프로그래밍(DP)글 내용

    문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 더보기 문제 설명 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타..

    좋아요1
    댓글0작성시간2022. 8. 23.
    게시글 이미지
  • 프로그래머스(Programmers) lv2 조이스틱 파이썬(python) 풀이글 내용

    프로그래머스(Programmers) lv2 조이스틱 파이썬(python) 풀이 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동..

    좋아요1
    댓글0작성시간2022. 8. 10.
    게시글 이미지
  • 운영체제(OS) 디스크 스케줄링 정리글 내용

    디스크 스케쥴링 디스크 스케쥴링 알고리즘 다중 프로그래밍 환경에서 여러개의 프로세스를 실행하려 한다고 할때, 보조기억장치에 저장된 여러개의 프로그램들을 메인메모리에 올려야 한다. 이때 프로세스 작업 처리 속도에 비해 보조기억장치에서 읽어오는 시간이 굉장히 오래 걸린다. 따라서 작업의 처리 효율을 위해 디스크 접근 시간을 최대한 절약하는게 중요하다. 이렇게 디스크에서 발생하는 처리 시간을 줄이는 알고리즘을 디스크 스케줄링 알고리즘이라 한다. 디스크 접근 시간 t = Seek time + rotational delay + transfer time 헤드가 물리적으로 이동하는 시간이 있기 때문에 지연 발생. Seek time 이 가장 크다. 따라서 seek time을 낮추면 지연시간을 줄일 수 있다. → HOW..

    좋아요1
    댓글0작성시간2022. 8. 10.
    게시글 이미지
  • 프로그래머스(Programmers) 큰 수 만들기 파이썬(Python) 풀이글 내용

    프로그래머스(Programmers) 큰 수 만들기 lv2 파이썬(Python) 풀이 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 양의 정수로 이루어진 배열 number에서 k 개의 수를 제거했을 때 얻는 가장 큰 수를 구하세요. number는 2자리 이상, 1,000,000자리 이하인 자연수 배열입니다. k는 number 자릿수 미만인 자연수입니다. 입출력 예 number k return "1924" 2 "94" "1..

    좋아요1
    댓글0작성시간2022. 8. 6.
  • 운영체제 11차시 질문 정리글 내용

    Q2. 프레임 할당 중 동적 할당인 Working set model과 PFF(Page-Fault Frequency)에 대해 간단하게 설명해주세요. Working set model Locality에 기반하여 프로세스가 일정 시간 동안 원활하게 수행되기 위해 한꺼번에 메모리에 올라와 있어야 하는 page 들의 집합을 Working Set이라고 합니다. (프로세스는 특정 시간 동안 일정 장소만을 집중적으로 참조, 이 장소들의 집합을 working set이라 함) working set 메모리에 올라가 있는 페이지의 집합 working set window working set window 주로 델타로 표현 (고정) working set size 각 프로세스 별로 가장 많이 쓰이고있는 페이지의 개수 PFF(Page..

    좋아요1
    댓글0작성시간2022. 8. 1.
    게시글 이미지
  • 프로그래머스 징검다리 건너기 파이썬(Python) 풀이글 내용

    문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 카카오 초등학교의 "니니즈 친구들"이 "라이언" 선생님과 함께 가을 소풍을 가는 중에 징검다리가 있는 개울을 만나서 건너편으로 건너려고 합니다. "라이언" 선생님은 "니니즈 친구들"이 무사히 징검다리를 건널 수 있도록 다음과 같이 규칙을 만들었습니다. 징검다리는 일렬로 놓여 있고 각 징검다리의 디딤돌에는 모두..

    좋아요1
    댓글0작성시간2022. 7. 20.
  • 프로그래머스 입국심사 파이썬(Python) 풀이글 내용

    문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/43238 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때,..

    좋아요2
    댓글0작성시간2022. 7. 20.
    게시글 이미지
  • 운영체제 10차시 질문 정리글 내용

    Q1. 페이지 폴트가 일어나는 상황과 벌어졌을 경우 어떻게 처리하는 지를 설명해주세요 → 오령기 페이지 테이블을 기준으로 본다면, cpu가 필요로 한 페이지에 접근할 때, 해당 페이지가 invalid일 경우에 해당한다. 이러한 상황을 page falut라고 합니다. 페이지 폴트 발생 시, 메인 메모리에 가용 공간이 있다면, 빈 공간에 해당 페이지를 적재하면 됨 메인 메모리에 가용 공간이 없다면, 메인 메모리의 어떤 페이지를 내보내야 함(victim) page fault rate을 최소화하는 페이지 교체 알고리즘 필요 → 페이지 폴트가 발생하지 않을 수록 메모리 관리가 잘 되고 있다는 뜻이다. Q2. 페이지 교체 알고리즘 중 FIFO 알고리즘과 OPT 알고리즘에 대해 설명해주세요. → 오령기 FIFO 알고..

    좋아요1
    댓글0작성시간2022. 7. 20.
    게시글 이미지
  • 프로그래머스 [3차] 파일명 정렬 파이썬(Python) 풀이글 내용

    문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/17686 문제 설명 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, ..

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