분류 전체보기

· JPA
본 글은 김영한님의 [인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편] 강의와 자바 ORM 표준 JPA 프로그래밍 책을 기반으로 정리해 작성하였습니다. 0. 소개 과거 주로 자바로 애플리케이션을 개발하고 관계형 데이터베이스(이하 RDB)를 데이터 저장소로 사용하던 개발자들은 객체지향의 장점을 포기하고 객체를 단순히 테이블에 맞추어 데이터 전달 역할만 하도록 개발하는 경우가 많았다. 쉽게말해 객체지향의 장점 중 하나로 잘 설계된 독립적인 클래스를 재사용하고, 상속할 수 있다는 장점이 있는데, 객체를 RDB에 적용시키려 할 때는 일일히 CRUD(등록, 수정, 삭제, 조회) 용 SQL을 반복해서 작성해야했고, 상속 관계의 경우 부모, 자식 클래스에 대한 SQL문을 각각 작성해야 한다는 문제점이 발생했..
문제 출처 - https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AW5jNL968dwDFATQ SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 요약 마트에 N봉지의 과자가 일렬로 나열되어 있고, 이 중 i번째 봉지는 Ai개의 조각을 가지고 있다. 추가적으로 M개의 봉지가 더 제공되며, 이 중 i번째 봉지는 Bi개의 조각을 가지고 있다. 일렬로 나열된 N개의 봉지의 과자 사이에 M개의 봉지를 아무 곳에나 끼워 넣을 건데, N개의 봉지는 초기 순서를 유지하고 있어야 한다. 이때 우리는 좌에서 우로 순서대로 걸어가며 과자를 ..
올해 11월 6일 열렸던 한국항공대학교 프로그래밍 경진대회를 개최한 후기를 남겨두려 한다. 자세한 진행과정은 시간이 날 때 꼭 다음 대회 개최자, 또는 대학에서 처음 프로그래밍 대회를 열어보려는 분들을 위해 따로 카테고리를 만들어 단계별로 상세히 적어 남겨두겠다! 문제 보기 : https://www.acmicpc.net/category/detail/2838 1. 시작 대회의 시작은 자그마치 2년 전.. 2019년 shake! 대회 오프라인 본선에서 교내 대회를 통해 올라온 다른 학교 본선 참가자들이 나름 친한 것?이 너무 부러웠다. 그래서 나는 졸업할 때까지 목표를 "첫 번째 교내 프로그래밍 대회 개최!"로 정했고, 우선 실력이 부족해 공부를 하기로 했다. 그러던 중 1학년 겨울방학때 백준 오프라인 강의..
· 일상
9월부터 약 2달 반 동안 진행되었던 2021년 카카오 채용 프로세스에 대한 후기를 남겨보고자 한다. 우선 필자는 대학교 컴퓨터전공 학부생 3학년이고 카카오 본사 Programming 분야에 지원했다. 결론적으로 2차 인성면접에서 불합격하였다. 1. 1차 코딩테스트 1차 코딩 테스트는 총 7문제 중 5.5문제를 풀었다. (아마 6번? 정확도는 맞고 효율성에서 틀렸던 것으로 기억) 기억상 5번이 (bitmask dp or 열심히 완전 탐색)으로 풀 수 있었는데, 이걸 풀지 않아도 5번에서 정확도만 맞추고 4.5솔 하신 분들은 모두 붙은 것으로 알고 있다.(아마 4솔도 붙은 듯??) 안전하게 5번을 풀었다면 확실히 붙을 텐데, 코딩 테스트만 준비하신 분들은 5번이 쉽지 않았을 것 같다. 작년에도 1차 코딩 ..
저번에 특정 구간의 소수를 구하는 것을 설명드렸는데, 이번엔 어떤 배열에서 특정 구간의 합을 구하는 문제입니다. 이 알고리즘은 저번보다 훨씬 간단하니 금방 익힐 수 있고, 최근 기업 코딩 테스트에서 소수 구하는 유형보다 훨씬 많이 나왔어요! 👍 그럼 살펴봅시다! 아래와 같은 배열이 주어지고 3 2 1 4 5 7 2 8 0 10 이 배열의 특정 인덱스 i부터 j까지 (단, i
기업 코딩 테스트 2~3번 단골 문제 중 하나인 N 이하의 소수(prime number)를 모두 찾아내는 방법에 대해 알아봅시다! 이 문제 유형은 대체로 백준 실버 1~2에 포진되어 있고 "문제는 어려우나, 이론은 간단한" 유형에 속합니다. (백준 1929 소수 구하기 : https://www.acmicpc.net/problem/1929) 이 유형은 "에라토스테네스의 체" 알고리즘을 알면 풀 수 있고, 모르면 못 푸는 문제인데요 에라토스테네스의 체란 고운 가루는 체에 걸러 통과시킨다는 뜻을 가지고 있는데, 여기서 고운 가루는 소수를 의미하게 됩니다. (이때 소수란 1과 자기 자신만 약수로 가지는 수를 의미합니다!) 에라토스테네스의 체에 대해서는 천천히 알아보고, 우선 일반적인 방법부터 살펴볼게요. 1) ..
· 일상
벌써 여름방학이 끝나버렸다.. 당장 내일 아침 9시 영어 커뮤니케이션 수업이 있는데,, 신입생들과 무슨 얘기를 해야 할지.. 앞길이 캄캄하다. 아무튼 끝난건 끝난 거고, 여름방학 시작할 때 계획 글을 썼는데 어느 정도 지켰는지 스스로 정리하면 나중에 읽을 때 재밌을 것 같아서 적어둔다. 이전 글 : https://suhwanc.tistory.com/162 3-1 여름방학 계획 이번 방학도 다른 방학과 다를 것 없이 자기 개발 계획을 세워보려한다. 다른 방학과 다른 점이 있다면, 이번 학기는 시험 기간에 놀고 먹다보니 종강하고 쉴 필요가 없어졌고, 알고리즘 문제 풀 suhwanc.tistory.com 1. 스프링 공부하기 목표 인프런 - 김영한 강사님의 스프링 로드맵을 따라서 공부하고, 모르는 부분은 열심..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 8. 교착 상태 (Deadlocks) 다중 프로그래밍 환경에서는 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있다. 한 스레드가 자원을 요청했을 때, 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 그때는 스레드가 대기 상태로 들어간다. 이처럼 대기 중인 스레드들이 결코 다시는 그 상태를 변경시킬 수 없으면 이런 상황을 교착 상태라 부른다. 교착 상태의 유명한 사례는 이러하다. 두 기차가 교차로에서 서로 접근할 때는, 둘 다 완전히 정지해야 하며 상대방이 없어지지 않는 한 누구도 ..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 6. Synchronization Tools 협력적 프로세스란 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스이다. 협력적 프로세스는 논리 주소 공간(코드 및 데이터)을 직접 공유하거나, 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있다. 이번 챕터에서는 협력적 프로세스들의 질서 있는 실행을 보장하여, 데이터의 일관성을 유지하는 다양한 메커니즘을 논의한다. 6.1 배경 이미 우리는 프로세스가 병렬로 실행될 수 있다는 것을 배웠다. (비동기) 하..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 5. CPU Scheduling CPU 스케줄링은 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 만든다. 이번 장에서는 기본 스케줄링 개념과 여러 스케줄링 알고리즘을 소개한다. 5.1 기본 개념들 1) 프로세스 실행은 CPU 버스트와 I/O 버스트의 반복이다. 2) CPU 스케줄러 CPU가 유휴 상태가 될 때마다, 운영체제는 준비 큐에 있는 프로세스 중 하나를 선택해 실행해야 한다. 선택 절차는 CPU 스케줄러에 의해 수행된다. (주..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 4. Threads & Concurrency 대부분의 현대 운영체제는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 특히 다중 CPU를 제공하는 최신 다중 코어 시스템에서 스레드 사용을 통한 병렬 처리의 기회를 식별하는 것이 점차 중요해지고 있다. 4.1 Overview 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 그리고 스택으로 구성된다. 또한 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 열린 파일이나 신..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 3. Process 오늘날 컴퓨터 시스템들은 메모리에 다수의 프로그램을 제어하고, 구획화할 것을 필요로 한다. 이러한 필요성은 프로세스의 개념을 만들었고, 프로세스란 실행 중인 프로그램을 말한다. 프로세스는 현대의 컴퓨팅 시스템에서 작업의 단위이다. 이번 장에서는 프로세스가 무엇인지, 운영체제에서 어떻게 표현되는지 그리고 어떻게 작동하는지에 대해 설명한다. 3.1 프로세스 개념 (Process Concept) 운영체제에 대해 논의할 때 중요한 것 중 하나는 "모든 CPU 활동들을 어떻게 부를 것..
suhwanc
'분류 전체보기' 카테고리의 글 목록 (2 Page)