분류 전체보기237 [CS] 프로그램, 프로세스, 쓰레드 서론오늘은 프로그램, 프로세스, 쓰레드의 차이점에 대해서 알아보도록 하겠습니다.본론프로그램과 프로세스의 차이프로그램이란 저장장치에 저장되어 있어 언제든지 실행 가능한 파일을 말합니다. 모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해줘야 실행될 수 있는데, 프로그램은 아직 메모리에 올라가 있지는 않은 상태입니다.반면, 프로세스란 컴퓨터에서 실행되고 있는 컴퓨터 프로그램을 말합니다. 이는 프로그램과는 다르게, 메모리에 올라와 있는 상태입니다. 즉, 프로세스란 메모리에 올라와 있는 프로그램을 말합니다.프로세스와 쓰레드의 차이과거에는 프로그램을 실행할 때 실행 시작부터 실행 끝까지 프로세스 하나만을 사용해서 진행했다고 합니다. 그러나 프로그램이 더이상 하나의 작업 만을 수행하지 않게 되면서, 프로.. CS 2025. 1. 8. 2024년 회고록, "소프트웨어 개발자로서의 기본기를 다진 1년" 2025년 절반이 지나가는 시점에 작년 회고를 작성하는게 조금 웃기지만, 새로운 회사에 입사하기 앞서 미뤄왔던 회고 글을 작성하려고 한다.2024년은 ‘개발자라는 직업의 본질이 무엇인가’에 대해 뼈저리게 고민했던 해였다. 코드 몇 줄 더 치는 사람이 아닌, 문제를 정의하고 해결하며, 품질과 속도를 동시에 잡는 개발자로서의 기반을 다시 다졌던 시기였다.속도와 품질의 균형: 기본기의 힘을 믿게 되다월급쟁이부자들에서는 조편성 시스템 자동화를 통해 연간 400시간의 운영 리소스를 절감했다. 이 프로젝트는 단순히 기능을 개발한 것이 아니라, Tech Spec 작성부터 설계 리뷰, 테스트, 사용자 피드백 반영까지 전 과정에서 내가 직접 주도한 경험이었다. 여기서 나는 속도는 '빠르게 시작하는 것'이 아니라 '명확하.. 생각정리 2025. 1. 5. [Algorithm] 코딩테스트에서 자주 쓰이는 파이썬 수학 내장함수 1. 기본 내장 함수1.1 abs()절댓값을 반환합니다.print(abs(-7)) # Output: 71.2 max() / min()리스트나 튜플에서 최대값 또는 최소값을 구합니다.numbers = [3, 5, 2, 9]print(max(numbers)) # Output: 9print(min(numbers)) # Output: 21.3 sum()리스트나 튜플의 합계를 구합니다.numbers = [1, 2, 3, 4]print(sum(numbers)) # Output: 101.4 pow()거듭제곱 계산.print(pow(2, 3)) # Output: 81.5 round()반올림을 수행합니다. 두 번째 인자로 소수점 자리수 설정 가능.print(round(3.14159, 2)) # Output:.. CS/알고리즘 2025. 1. 4. [Algorithm] 코딩테스트를 위한 기본 알고리즘 정리 구현/시뮬레이션특징알고리즘 문제의 80%는 구현이다. 문제 풀 때, 대부분 구현 문제라고 접근해도 무방하다.접근방법모든 경우의 수를 따져야 함.주어진 범위 내에 모든 수를 탐색해보면서 조건에 맞으면 탐색한다.예시 1) 2503번: 숫자 야구세 자리 수의 동일한 자리에 위치하면 스트라이크 한 번으로 센다. 숫자가 세 자리 수에 있긴 하나 다른 자리에 위치하면 볼 한 번으로 센다.주어진 범위 → 세자리수스트라이크&볼 → 조건순회 → 모든 수 탐색민혁: 123 영수: 1 스트라이크 1 볼.민혁: 356 영수: 1 스트라이크 0 볼.민혁: 327 영수: 2 스트라이크 0 볼.민혁: 489 영수: 0 스트라이크 1 볼.이때 가능한 답은 324와 328, 이렇게 두 가지이다. import sysfrom iterto.. CS/알고리즘 2025. 1. 4. S3 Presigned URL 활용한 파일 업로드 방법 실습이론만 다루면 아쉬우니, 서버는 Java 환경, 클라이언트는 JavaScript 환경에서, 위 흐름대로 직접 서비스를 구현한 코드 예시를 보여 드리며, 직접 실습하여 봅시다. Spring 환경 설정 관련해서는 [Framework/Spring] - [Spring] Spring Boot 환경설정 가이드 을 참고하시길 바랍니다. 코드 상에서 S3를 활용하기 위해선, 아래와 같은 작업들이 수반되어야 합니다.AWS 계정 생성IAM Role 또는 Access Key & Secret Key 생성AWS S3 버킷 생성S3 버킷 CORS 설정 (파일 업로드를 위해)위와 관련된 부분은 본 게시글의 범위를 넘어가므로, 생략합니다.환경설정aws: s3: access: your-access-key # 수정 필요 .. 카테고리 없음 2024. 12. 25. 조편성 TechSpec과 테스트케이스 요약 (Summary)가장 먼저 테크 스펙을 세 줄 내외로 정리합니다. 테크 스펙의 제안 전체에 대해 누가/무엇을/언제/어디서/왜를 간략하면서도 명확하게 적습니다.조편성이란누가/무엇을 : 조편성이란 월부에서 함께 수강하는 사람들끼리 부동산 학습을 위해 짝 지어준 스터디 그룹을 말합니다. 조편성 프로그램은 이를 위해, 어드민 관리자 (CM분들)가 조 편성을 하기 위해, 설문 등록부터 조장/운영진 선발, 조원 배치, 노출확정 등의 기능을 제공합니다.언제/어디서 : 정규강의 신청과 설문 응답이 마감된 이후, 어드민 페이지에서 진행합니다.왜 : 월간 10,000명 부동산 강의 수강생들의 조장/조원 희망 여부 및 희망 지역(오프라인 임장지역) 응답에 따라, 수기로 팀 배정하였습니다. 2000명의 조편성 인원을 조.. 기타 2024. 12. 24. Spring Batch 프로젝트 테스트코드 최적화 방안 배경12월 4일 이후, Spring Batch 프로젝트의 테스트코드 양이 증가하며, OOM 문제로 인해, 테스트가 50분이 넘도록 돌아가지 않고 실패했습니다. 불과 100개도 안되는 테스트 였음에도 말이죠!! 무언가 이상했습니다. webapp은 300개가 넘는 테스트가 돌고 있음에도, 동일한 Heap Memory 스펙 하에서, 더 빠른 시간 안에 처리가 됐기 때문입니다.뿐 만 아니라, 테스트가 중간에 끝났음에도 Heap Memory Size는 줄어들지 않고 있었습니다. 이로써, Batch 쪽 테스트코드 로직에 문제가 있음을 직감할 수 있었습니다.문제해결과정테스트를 실행할 때, 갑작스럽게 OutOfMemoryError가 발생했을 때, 어딘가 메모리 누수가 발생되고 있다고 판단했습니다. 따라서 기존에 작성된.. 카테고리 없음 2024. 12. 21. [AWS] AWS Batch 설정 가이드 AWS Batch를 설정하고 사용하는 과정은 여러 단계로 나뉘며, 클러스터를 구성하고 작업 대기열을 생성하며 작업 정의를 설정하는 것이 핵심입니다. 아래는 AWS Batch 설정을 위한 단계별 가이드입니다.1. AWS Batch 환경 구성(1) 컴퓨팅 환경 생성AWS Batch에서 작업을 실행할 인프라 환경입니다. 이를 통해 EC2 인스턴스를 자동으로 시작하고 관리할 수 있습니다.AWS Management Console에서 AWS Batch 서비스로 이동.Compute Environments로 이동 후 Create 버튼 클릭.Managed Environment를 선택 (AWS Batch가 인프라를 자동으로 관리).Instance Types: 작업에 필요한 EC2 유형을 선택하거나 특정 유형을 지정.Des.. Infra/AWS 2024. 12. 1. [Batch] Spring Batch Scope의 개념과 Job Parameter 사용 방법 Spring Batch Scope란Spring Batch에서 Scope란 개념이 존재합니다. Scope는 빈의 생성 및 관리와 관련된 범위를 정의하는 개념으로, _작업(job) 실행 과정에서 특정 컨텍스트나 상태를 유지해야 하는 경우에 사용_됩니다.Spring Batch에선 모든 빈을 처음에 한 번에 생성하지 않고, 특정 Scope 내에 있는 빈을 실행 시점에 생성합니다. 이렇게 하는 이유는 배치 애플리케이션을 효율적으로 동작시키기 위함입니다. Scope를 활용하여 실행 시점에 빈을 생성하는 것이, 그렇지 않았을 때보다, 어떤 면에서 더 효율적일까요?Spring Batch에서 실행 시점에 빈을 생성하는 이유1. 동적 데이터 및 실행 환경의 요구 처리배치 작업은 실행 시점마다 다른 JobParameters.. Framework/Spring 2024. 11. 27. [기타] Tech Spec으로 프로젝트 성공 확률 높이기 서론 (들어가기 앞서) 입사한 지 한 달 만에, 저는 팀 내에서 중요한 역할을 맡아 어드민 내 복잡한 시스템 설계를 진행해야 했습니다. 새롭게 도입될 기능은 운영 부서와 협업이 긴밀하게 필요한 고도화된 서비스였고, 요구사항도 다양했습니다. 처음에는 정리된 요구사항을 설계로 연결하는 과정이 막막하게 느껴졌습니다. 제한된 시간 안에 방향성과 기술적 결정을 명확히 해야 했지만, 어디서부터 시작해야 할지 고민이 컸습니다. 타 Tech 회사에서 일하는 방식을 벤치마킹 하려 찾아보던 과정에서 뱅크샐러드의 Tech Spec 관련 블로그 글을 접하게 되었고, 이를 통해 명확한 문서화를 통한 설계 접근법이 효과적일 것이라는 확신을 가지게 되었습니다. Tech Spec (기술명세서) 란 뱅크샐러드에서 시작된 설계 프로세스.. 기타 2024. 11. 10. PresignedUrl 활용한 파일 다운로드/업로드 Timeout 에러 및 성능개선기 서론 (들어가기 앞서)현재 제가 재직 중인 회사는 온라인 강의 서비스와 커뮤니티 서비스를 운영합니다. 저희 고객 분들은 온라인으로 줌 강의를 수강하고, 모임 인증 사진을 커뮤니티에 사진을 업로드하곤 합니다. 문제는 모임이 끝나는 시점에 여러 명의 사용자가 동시 다발적으로, 동시에 업로드를 진행한다는 점입니다. 이로 인해 짧은 시간에 서버로 부하가 몰렸습니다. 특히 독서모임 등 1000명 가량의 인원이 동시에, 강의를 같은 시간에 수강한 이후, 인증을 진행하는 경우, 504 Timeout 에러로 인해 업로드 자체가 실패하는 경우도 많았습니다.현재 AWS S3 서비스를 이용 중인데, 기존에는 S3로 파일을 업로드할 때 WAS를 경유하는 구조였습니다. 특히 요청이 밀리다보면 뒤 요청은 TimeOut 에러로 인.. Infra 2024. 10. 22. 윈도우함수(Window Function)로 중복 닉네임 처리하기 서론 (들어가기 앞서)기획자님 : 상용 DB에 중복 닉네임이 존재합니다. 중복된 닉네임을 뒤에 가입한 순서대로 숫자 001, 002, 003 등으로 붙여주세요.얼마 전, 회사에서 중복 닉네임을 일괄 변경하는 작업에 대한 요청이 있었습니다. 이미 기존에 중복된 닉네임에 가입 순서를 기준으로 001, 002, 003 뒤에 숫자를 붙여서 수정하는 것이 요구사항이었습니다. 물론 실제로는 이것보다 친절하고 자세하게 설명해주셨죠. 순간 고민이 됐습니다. 쿼리로 한 번에 처리할 순 없을까? 🤔 찾아 보니, 윈도우 함수 내 순위함수 기능을 사용하면 쉽게 값을 정해줄 수 있었습니다 🥹 그래서 이번 시간에는 윈도우함수의 순위함수를 사용하여, 위 요구사항에 만족하는 쿼리를 작성하는 방법에 대해 함께 알아보도록 하겠습니다.. DB 2024. 9. 27. 이전 1 ··· 3 4 5 6 7 8 9 ··· 20 다음 반응형