깃? (feat.옷깃만 스쳐도 알 수 있잖아~)
정의 Git은 분산 버전 관리 시스템으로, 소프트웨어를 개발할 때 여러 사람이 동시에 작업할 수 있도록 돕는 도구다. 코드 변경 사항을 추적하고 협업하며, 버전 관리를 효율적으로 할 수 있게 해준다. 주요 용어 Repository(저장소): 코드와 변경 내역을 저장하는 곳. 로컬 저장소와 원격 저장소(GitHub, GitLab)로 나뉜다. Commit: 변경 사항을 저장소에 기록하는 작업이다. Branch: 독립적으로 작업을 진행할 수 있는 가지다. Merge(병합): 둘 이상의 브랜치를 하나로 합치는 작업이다. Clone: 원격 저장소의 내용을 로컬 저장소로 복사해오는 작업이다. Pull: 원격 저장소의 변경 사항을 로컬 저장소로 가져오는 작업이다. Push: 로컬 저장소의 변경 사항을 원격 저장소로 올리는 작업이다. Stash: 작업 중인 변경 사항을 임시로 저장해두고, 나중에 다시 적용할 수 있게 하는 기능이다. Remote: 원격 저장소를 가리키는 용어다. Fork: ...
HikariCP는 왜 나를 계속 괴롭히는가?
어느날, 내게 조용히 찾아온 그대. 커넥션 풀 퇴근길 지하철 안에서 고객사로부터 연락을 받고, 나는 고민에 빠졌다. 그들이 전한 내용은, “그룹웨어 시스템에서 회원 데이터를 조회하는 과정에서 문제가 발생하고 있다.” 는 것이었다. 이 문제는 간헐적으로 발생하여 즉각적인 해결이 필수적이지 않아 보였으나, 원인을 파악하면 좋겠다는 내용이었다. 사실, 오류가 일관되게 발생한다면 문제 해결 방향을 설정하기가 비교적 수월하므로 부담이 적지만, 이처럼 간헐적으로 발생하는 문제는 마치 까다로운 퍼즐을 푸는 것과 유사하다. 이러한 도전 또한 유익한 경험으로 간주하여 긍정적인 태도로 임하게 되었다. 먼저, 커넥션 풀에 대한 이해를 돕기 위해, 주요 개념을 간략히 요약하여 설명한다. JDBC(Java Database Connectivity): Java 애플리케이션에서 데이터베이스를 사용할 수 있게 하는 API로, Connection(연결), 명령 실행(Statement), 결과 집합 처리(Re...
정보처리기사
생각 정리 2022년 정기 2회 시험을 도봉구에서 치렀다. 입실 시간을 보고 한 번 놀랐고, 항상 시험장에 한 시간 일찍 도착하는 습관 탓에 잠도 부족했다. 시험장의 공기는 여느 때와 다름없이 차분했다. 100문제를 2시간 30분 동안 꽉 채워 풀었다. 필기 시험 이후 직장생활을 병행한다면 당연히 시간이 부족하므로, 기출문제를 여러 방식으로 응용해가며 문제 해결 방식을 다각도로 고민하고 집중해서 풀어야 한다. 각 과목을 체감 난이도로 수치화해보면 대략 다음과 같다. (전적으로 주관적인 기준이다.) 과목 체감 난이도 비고 소프트웨어 설계 55/100 요구사항 관련 문제 출제 빈도가 높다. 폭포수·애자일 기법에 대한 깊은 이해가 필요하다. 소프트웨어 개발 60/100 설계 과목과 맥이 통한다. 개발자라면 익숙할 용어가 대부분이다. 데이터베이스 활용 80/100 데이터베이스에 관심이 있거나 관련 자격증이 있다면 쉬운 편이다. 정규화, 분산 데이터베이스를 준비하면 ...
운영체제의 역할
역할 운영체제는 컴퓨터 하드웨어와 응용 프로그램 사이의 인터페이스 역할을 하며, CPU와 메모리 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공한다. 컴퓨터 시스템은 일반적으로 사용자, 소프트웨어, 하드웨어라는 세 요소로 구분된다. 운영체제는 세 가지 역할을 동시에 수행한다. 조정자로서 하드웨어, 소프트웨어, 프로그램, 데이터 같은 여러 운영 요소를 적절히 사용할 수 있도록 시스템을 제어한다. 다만 다른 프로그램이 작업할 수 있는 환경만 제공할 뿐, 직접 일을 하지는 않는다. 자원 할당자·관리자로서 프로세서 시간, 메모리 공간, 파일 저장 공간, 입출력 장치 같은 자원을 시스템에 배분하며, 이를 공정하고 효율적으로 배분하는 방법을 결정하는 관리자 역할도 맡는다. 입출력 장치·사용자 프로그램 제어자로서 시스템의 부적절한 사용이나 오류를 막기 위해 사용자 프로그램의 실행을 통제하고, 입출력 장치를 동작시키고 관리한다. 기능 운영체제는 하드웨어와 사용자 사이의 인터페이스를 정의하...
데이터베이스 관리 시스템
데이터베이스 정의 데이터베이스란 데이터를 조직적으로 통합하고 구조화해 놓은 데이터의 집합체를 말한다. 통합·저장·운영·공용이라는 성격의 데이터를 다루며, 실시간 접근성과 계속적인 변화, 동시 공용, 내용에 의한 참조라는 특징을 갖는다. 데이터베이스는 개체(개념·정보), 속성(가장 작은 논리적 단위), 관계라는 세 요소로 구성된다. 데이터베이스를 쓰면 중복을 최소화하고 데이터를 공유하며 일관성과 무결성, 보안을 유지할 수 있다는 장점이 있지만, 예산이 늘고 전문적인 기술이 필요하다는 단점도 함께 따라온다. 데이터베이스 시스템 발전배경 초기에는 파일 시스템으로 재고, 인사 같은 업무를 처리했다. 파일 하나로는 정해진 작업만 할 수 있었고, 두 가지 이상 관련된 작업은 사용자가 각각의 처리 결과를 수작업으로 합쳐야 했다. 이런 파일 시스템은 데이터 종속성과 중복성 문제를 낳았는데, 공통 액세스 루틴을 갖춘 파일 관리 시스템이 이 중복성 문제를 어느 정도 해결했다. DBMS는 이런 단...



