본문 바로가기

전체 글232

[Archive] 2024 정보처리기사 필기 합격 후기! 준비 방법과 도서 추천 등 개요 소프트웨어학과 전공자로서 정보처리기사는 익히 들어왔던 자격증이라, 4학년이 되는 시점에서 자연스럽게 취득에 도전했다. 공부를 하면서 전공자라면 필요한 자격증이라고 느꼈고, 공부했던 전공 내용들을 다잡기에 확실히 좋은 시험이었다! 준비 기간 및 방법 나의 성향과 전공 활용 필자는 시험을 미리 준비하지 않으면 긴장도가 매우 높고, 회사 다님 + 취준을 병행하다보니 공부할 시간이 많이 없을 거라 전공자임에도 불구하고 시험 약 한달 전부터 준비를 시작했다. 하루만에 합격 이런건 진짜 어떻게 한거지? 싶다. (체감 상 일주일은 아무런 일정없이 이것에만 몰두할 수 있다면 가능할 것같다.) 또한 필자의 경우 기출만 회독으로 시험뿌시기! 이런걸 잘 못한다. 기출 풀고 -> 모르는 건 개념 훑기 최소한 이 과정은 .. 2024. 2. 22.
[GCP] Cloud Logging 에러 사항을 메일로 모니터링하기 개요 예기치 못한 에러 때문에 개발자가 모르는 사이 서비스가 갑자기 다운될 수도 있다. 이러한 이슈를 방지하기 위해 로그를 모니터링하는 것은 매우 중요한 일이며, 메일, slack, chat 등으로 실시간 알림을 통해 로그를 모니터링할 수 있다. Cloud Logging Cloud Logging을 보면 정말 많은 로그들이 실시간으로 쌓이고 있다. 이번 포스팅에서는 Error 관련 로그가 발생했을 때 회사의 DEV 계정으로 메일 알림을 전송하는 것을 세팅해보도록 한다. Cloud Logging의 가장 우측에 알림 만들기라는 버튼을 클릭하자. 원래 이 서비스는 없었고 StackDriver라는 서비스로 지원됐었는데, 새로 생겼다고 한다. 그래서 Cloud Logging 관련 리서치를 하면 여전히 Stackdr.. 2024. 2. 14.
[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 | LIKE 사용법 개요 SQL의 LIKE문은 주로 쿼리문 WHERE와 함께 사용되며, 일치하는 컬럼을 찾을 때 사용한다. 해당 문제처럼, 컬럼에 다양한 정보가 있을 때 '통풍시트', '열선시트', '가죽시트' 등 특정 내용을 걸러내야 하는 경우에 사용하기 좋다. LIKE 사용법 -- A로 시작하는 문자 찾기 -- where 컬럼명 like 'A%' -- A로 끝나는 문자 찾기 -- where 컬럼명 like '%A' -- A를 포함하는 문자 찾기 -- where 컬럼명 like '%A%' -- A로 시작하는 두 글자의 문자 찾기 -- where 컬럼명 like 'A_' -- 첫 번째 문자가 'A'가 아닌 모든 문자열 찾기 -- where 컬럼명 like '[^A]' -- 첫 번째 문자가 'A' or 'B' or 'C'인 .. 2024. 2. 11.
[백준/1107] 리모컨 리모컨 Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 이 문제는 세 가지 함정이 있다ㅠㅠ 해당 블로그에서 잘 짚어주셨고, 이를 참고하여 문제해결에 반영하였다. 시작값(100)에서 +, - 버튼 조작으로 타겟 채널로 이동 vs 숫자 버튼을 통해 타겟 채널로 이동 고장난 버튼이 없을 때, 입력을 받지 않음 차이의 최솟값을 구하는 게 최선이 아닐 수 있음 알고리즘 1. 시작값(100)에서 타겟값까지의 차이 해당 문제의 예시에도 잘 나와있듯이, N = 100인 상황일 때는 당연히 리모컨을 조작하지 않아도 된다. 2. 고장난 버튼이 없을 때 입력을 받지 않음 m의 범위는 0 ~ 10이므로, .. 2024. 2. 11.
[프로그래머스] 131530. 가격대 별 상품 개수 구하기 문제 PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요. group by기본 문제다. 문제를 잘 보면 만원 단위의 가격대 별로 상품 개수를 출력해야 한다. 상품 개수는 예시에 잘 나와있듯이 product_id를 집계 함수로 잘 세어주면 된다. 만원 단위의 가격대 별로 조작하기 위해서는, 현재 DB에 저장된 price 값을 조정하고, GROUP BY해야한다. SQL Integer 조작 14000, 23000 이런.. 2024. 2. 10.
[백준/7576] 토마토 토마토 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 알고리즘 일반적인 그래프 탐색과 달리, 입력된 초기 그래프에서 1이 있는 곳을 동시에 인접 지역을 탐색해야 한다. 즉, 시작점이 여러 개다. 시작점을 미리 queue에 넣어서 방문할 수 있도록 한다. 1이 있는 지점을 방문하면서 인접 장소를 탐색한다. 이때 익지 않은 토마토가 있다면 방문하고, 몇 번째 날짜인지 기록한다. 이 부분을 print로 찍어보면 다음과 같이 나온다. 일단 queue에 익은 토마토(1)의 위치를 모두 append 해.. 2024. 2. 4.
[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 문제 USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요. sql 문제를 풀 때는 원하는 결과값이 어떤 것인지?에 대해 먼저 파악해야 한다. 그리고 이 결과를 도출하기 위한 세부적인 연산에 대해 고민한다. 먼저, BOARD 테이블은 게시글에 대한 정보를 담고 있고, REPLY 테이블은 그 게시물의 첨부파일 정보를 담고 있다.(쉽게 생각해서 댓글이다. REPLY 테이블의 필드값을 통해 유추할 수 있다.) 이러한 정보를 보.. 2024. 2. 3.
[SQL] JOIN 개요 데이터베이스를 관리할 때는 데이터베이스 품질 보장을 위해 정규화(관계형 스키마를 세분화하는 것)를 한다. 이렇게 세분화된 테이블들은 연결되어 사용해야 하는 경우가 있다. 예를 들어, 학생 정보 테이블과 학과 정보 테이블이 정규화에 의해 분리되었고 학생의 학과 정보를 위해 두 테이블을 연결하여 정보를 얻는다. 이러한 연결을 위한 연산이 JOIN이다. JOIN 종류 카티션 곱(Cartesian Product): 모든 행에 대한 조인(합집합) 동등 조인(equi join): 공통 속성을 기준으로 같은 값을 가지는 행 조회(교집합) 비동등 조인(non-equi join): 공통 속성을 기준으로 >, =, 2024. 2. 3.
[프로그래머스] 조건에 맞는 도서 리스트 출력하기 | DATE DATE SQL의 DATE 타입은 YYYY-MM-DD hh:mm:ss 형식이다. select 문에서 DATE(datetype_record) 이렇게 사용하면 YYYY-MM-DD 부분만 추출한다. DATE_FORMAT으로 기본값인 YYYY-MM-DD hh:mm:ss를 변경할 수 있다. DATE Format 2024-02-01 18:31:45 날짜 및 요일 포맷 형식 결과값 %Y 2000 %y 00 %M February %b Feb %m 02 %d 01 %e 1 %a Thu 시간 포맷 형식 결과값 %H 18(24시간) %h 6(12시간) %i 31(분) %s / %S 45(초) %m 02 해당 문제는 시간을 제외하고 날짜를 'yyyy-mm-dd' 데이터를 출력해야 하므로, SQL문은 다음과 같다. date_f.. 2024. 2. 1.
[OS] Synchronous, Asynchronous, Blocking, Non-Blocking 개요 Synchronous & Asynchronous | Blocking & Non-Blocking의 개념과 실제로 어떻게 활용하는지, 네 개념의 상관관계는 어떻게되는지 정리하는 포스팅이다. Synchronous Sync 프로세스들은 서로 실행 시점에 따라 순서를 가지고, 순차적으로 실행이 된다. 아래와 같은 Java 예제 코드와 Synchronous한 동작 과정은 다음과 같다. public class Person { private String name; public Person(String name) { this.name = name; } public void introduce() { System.out.println("Hello, my name is " + name + "."); } } public .. 2024. 1. 31.
[OS] user mode & kernel mode 개요 운영체제는 응용 프로그램과 하드웨어 간의 상호작용을 관리하고, 리소스를 효율적으로 활용하기 위한 다양한 작업을 한다. 이 작업에 대한 방식을 두 가지(유저 모드와 커널 모드)로 나누어, 컴퓨터 자원을 안정적으로 보호한다. 이 두 가지 작업 모드에 대해서 알아보자. Kernel이란 커널은 OS의 핵심이되는 프로그램으로, 시스템의 모든 것(하드웨어의 동작, 메모리, CPU 등)을 제어한다. 프로세스 간 통신과 System Call을 이용하여, 하드웨어 리소스에 접근하여 수행되는 응용 프로그램과 데이터 처리 사이의 중간다리 역할을 한다. 커널에는 모든 활성 프로세스를 추적하는 프로세스 테이블이 있어, 이들을 관리한다. 커널은 OS가 로드되면 메모리에 먼저 로드되고, OS가 종료될 때까지 메모리에 남아있다.. 2024. 1. 30.
[GCP] Google Cloud Load Balancer, GCP 로드밸런서 구축 | Cloud NAT와 로드밸런서 | Cloudflare 개요 회사 서버 개편 작업을 위해서 다음과 같은 작업을 수행하였다. Instance Template, Instance Group 생성 (https://cobinding.tistory.com/229) Cloud NAT Gateway 구축 (https://cobinding.tistory.com/244) [GCP] Cloud Nat Gateway 구축 과정 및 작동 방식 요구사항 서버 상황 현재 VM 인스턴스의 외부 ip는 임시 ip로 되어있다. 배포는 수동으로 “인스턴스 바꾸기”를 통해서 새로운 인스턴스 이름과 ip를 부여받는 방식으로 운영하고 있다. 인스턴스 cobinding.tistory.com [GCP] Instance Template과 Instance Group을 통한 VM 서버 생성과 블루-그린 배.. 2024. 1. 29.