인기글
-
"마케팅 성공사례 보고서" (4학년 1학기 광고와 마케팅)
선정한 기업과 선정 이유 이번 마케팅 성공사례 조사와 관련한 보고서 작성을 위해 제가 선택한 기업은 카카오입니다. 카카오에 대해 설명하기 전에 왜 제가 카카오라는 기업을 주제로 잡았는지 설명하도록 하겠습니다. 이번 보고서의 주제로 카카오를 선정한 이유는 총 2가지입니다. 첫째는 제가 컴퓨터 공학을 공부하는 사람으로서 함께 일하고 싶은 회사이기 때문입니다. 카카오는 현재 우리의 생활에서 뺄 수 없는 감초와 같은 기능을 하고 있습니다. 친구와 대화를 할 때는 카카오톡을 사용하고 물건을 살때는 카카오 페이를 활용하며 화폐를 주고 받을 때는 카카오 뱅크를 사용하는 등 우리의 일상속에 숨쉬듯이 살아가는 것이 카카오라고 할 수 있습니다. 저는 이러한 카카오의 하나의 톱니바퀴가 되어 일하고 싶다는 꿈을 꾸고 있습니다..
2022.01.14
-
Oracle Join이란 무엇인가? : Outer Join에서 (+)가 없다면?
내가 지금 진행하는 프로젝트에서ASIS 에서 사용하던 oracle 쿼리를 postgreSQL 쿼리로 변경하는 작업을 하고 있는데사용하는 쿼리 중의 많은 양이 오라클 조인을 사용하고 있다.그래서 Oracle Join에 대해 알아보려고 한다. 오라클 조인이란?다른 DBMS에서 Join을 위해서는 INNER JOIN, LEFT OUTER JOIN, CROSS JOIN 등과 같은 ANSI JOIN을 사용할 것이다.하지만 Oracle에서는 Oracle Join이라는 조인을 위한 한가지 방법이 더 있다.ANSI JOIN은 JOIN과 ON구문으로 명시하여 조인컬럼을 구분하지만 오라클 조인은 WHERE 절에 조인 컬럼과 조회 조건이 공존한다.예시를 들어보자.학생 ID와 이름이 있는 학생 테이블과과제ID, 학생 ID, ..
2026.05.31
-
(c++) 프로그래머스 "전력망을 둘로 나누기"
https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr #include #include using namespace std; vector m[200]; int bfs(int togo, int now, int count) { for (int i = 0; i < m[now].size(); i++) { if (m[now][i] != togo) { count = bfs(now, m[now][i], count+1); } } r..
2022.05.17
-
Android Studio EditText이 비어있는지 확인하기
안드로이드 프로그래밍을 하다보면 EditText를 많이 사용한다. 이 때 EditText에 아무것도 작성하지 않은 경우 이를 확인하고 예외처리를 해줘야 하는 경우가 있다. 예외처리 코드는 다음과 같다. if(TextUtils.isEmpty(editText.getText().toString())){ //editText가 비어있다면 Toast.makeText(getBaseContext(), "EditText가 비어있습니다.",Toast.LENGTH_SHORT).show(); return; } 예를 들어, 만약 버튼을 누르면 EditText의 글자를 토스트로 보여주는 예제를 만들어보자 전체 코드는 아래와 같다 public class MainActivity extends AppCompatActivity { Ed..
2021.04.27
-
[DataBase] Delete vs Truncate vs Partition Truncate
오늘은 Truncate와 Partition에 대해 공부해 보려고 한다.이번 프로젝트에서 Truncate와 Partition을 사용할 일이 생겨서Truncate가 왜 Delete보다 빠른지, Partition은 어떤 구조로 이루어졌는지에 대한 궁금증이 생겨서이에 대해 조사해 보았다. Delete와 TruncateDelete와 Truncate는 둘다 데이터를 삭제한다는 기능을 가지고 있지만동작방식은 살짝 다른데, 이에 대해 이해하기 위해서는 RDBMS의 저장 구조를 알면 좋을거 같다. RDBMS의 논리적 저장구조RDBMS는 Table Space, Segment, Extent, Block으로 구성되어 있다.Block (Page)Block은 디스크와 메모리 간 I/O 처리를 위한 최소 단위 이다.Block은 여..
2026.08.09
-
[Database] 인덱스(Index)란 무엇인가? : B+Index의 구조
이전에 쿼리튜닝을 공부하면서 인덱스에 대해 살짝 알아봤었다. 쿼리 튜닝에 대하여(기초)이번 프로젝트에서 쿼리를 다룰일이 많다. DB를 많이 사용하다보니 select할 때 시간이 많이 걸리기 때문에 쿼리튜닝이 필수였다.쿼리튜닝은 DBA가 해주지만 DBA가 바빠서 그런지 응답 시간이 오래ytlive.tistory.com오늘은 인덱스란게 어떻게 데이터 조회 속도를 향상시키는지그 구조와 종류에 대해 알아보려고 한다. Index 너는 누구인가?인덱스(Index)란 정확히 무엇인가?인덱스는 테이블에서 데이터를 빠르게 읽을 수 있도록 도와주는 자료구조 이다.흔히 책의 목차 정도로 이해하면 될 것이다.테이블의 특정 컬럼에 대해 별도의 자료구조를 만들어 데이터베이스에서 테이블의 모든 테이블을 검색하지 않고, 원하는 데이..
2026.07.24
최신글
-
[DataBase] Delete vs Truncate vs Partition Truncate
오늘은 Truncate와 Partition에 대해 공부해 보려고 한다.이번 프로젝트에서 Truncate와 Partition을 사용할 일이 생겨서Truncate가 왜 Delete보다 빠른지, Partition은 어떤 구조로 이루어졌는지에 대한 궁금증이 생겨서이에 대해 조사해 보았다. Delete와 TruncateDelete와 Truncate는 둘다 데이터를 삭제한다는 기능을 가지고 있지만동작방식은 살짝 다른데, 이에 대해 이해하기 위해서는 RDBMS의 저장 구조를 알면 좋을거 같다. RDBMS의 논리적 저장구조RDBMS는 Table Space, Segment, Extent, Block으로 구성되어 있다.Block (Page)Block은 디스크와 메모리 간 I/O 처리를 위한 최소 단위 이다.Block은 여..
2026.08.09
-
[Database] 인덱스(Index)란 무엇인가? : B+Index의 구조
이전에 쿼리튜닝을 공부하면서 인덱스에 대해 살짝 알아봤었다. 쿼리 튜닝에 대하여(기초)이번 프로젝트에서 쿼리를 다룰일이 많다. DB를 많이 사용하다보니 select할 때 시간이 많이 걸리기 때문에 쿼리튜닝이 필수였다.쿼리튜닝은 DBA가 해주지만 DBA가 바빠서 그런지 응답 시간이 오래ytlive.tistory.com오늘은 인덱스란게 어떻게 데이터 조회 속도를 향상시키는지그 구조와 종류에 대해 알아보려고 한다. Index 너는 누구인가?인덱스(Index)란 정확히 무엇인가?인덱스는 테이블에서 데이터를 빠르게 읽을 수 있도록 도와주는 자료구조 이다.흔히 책의 목차 정도로 이해하면 될 것이다.테이블의 특정 컬럼에 대해 별도의 자료구조를 만들어 데이터베이스에서 테이블의 모든 테이블을 검색하지 않고, 원하는 데이..
2026.07.24
-
DB PK(유일값) 일련번호 채번방식에 대하여
이번 프로젝트에서는 데이터 보관을 위해DELETE 사용을 금지하고 삭제여부 컬럼을 추가하여 삭제 데이터를 관리하고 있다.그래서 중복 방지를 위해 SEQ즉 일련번호 컬럼을 추가할 필요가 있었다.때문에 오늘은 일련번호를 채번하는다양한 방법에 대해 알아보고 비교해보려고 한다. 일련번호 채번방법 4가지일련번호 채번방법으로는 크게 4가지가 있다.1️⃣ Max + 12️⃣ DB Sequence (시퀀스 객체)3️⃣ 채번 테이블 방식4️⃣ 프레임워크 UUID (Universally Unique Identifier)하나씩 예시를 들어서 확인해보겠다. 1️⃣ Max + 1가장 간단한 채번방법은 Max + 1이다.현재 테이블에 저장된 ID 값 중 가장 큰 값을 조회하여거기에 + 1을 더해 새 번호를 부여한다.Max + 1..
2026.07.05
-
[Spring Batch] Batch에서의 Tasklet과 Chunk
오늘은 배치에 대해 알아보겠다.배치란 무엇일까.배치란?배치는 대용량 데이터를 사용자 개입 없이 컴퓨터가 일괄적으로 처리하는 프레임워크이다.주로 대용량 데이터 처리, 자동화 등에서 사용된다. 배치의 실행 방식배치는 배치 실행 시점과 동작방식에 따라 아래와 같이 크게 3가지 종류로 나뉜다.- 정기배치- 이벤트 배치- On-Demand 배치정기 배치 (Scheduled Batch)정기 배치는 정해진 주기에 따라 자동으로 실행되는 배치이다.우리가 알고 있는 배치는 대부분 정기 배치일 것이다.주로 스케줄러 툴과 연동하여 사용한다.예를 들어 매일 새벽 2시에 통계를 생성한다든지, 매달 25일에 월급 명세서를 발급한다는 등의 작업을 할 수 있다. 이벤트 배치 (Event-Driven Batch)이벤트 배치는 특정 이..
2026.06.13
-
Oracle Join이란 무엇인가? : Outer Join에서 (+)가 없다면?
내가 지금 진행하는 프로젝트에서ASIS 에서 사용하던 oracle 쿼리를 postgreSQL 쿼리로 변경하는 작업을 하고 있는데사용하는 쿼리 중의 많은 양이 오라클 조인을 사용하고 있다.그래서 Oracle Join에 대해 알아보려고 한다. 오라클 조인이란?다른 DBMS에서 Join을 위해서는 INNER JOIN, LEFT OUTER JOIN, CROSS JOIN 등과 같은 ANSI JOIN을 사용할 것이다.하지만 Oracle에서는 Oracle Join이라는 조인을 위한 한가지 방법이 더 있다.ANSI JOIN은 JOIN과 ON구문으로 명시하여 조인컬럼을 구분하지만 오라클 조인은 WHERE 절에 조인 컬럼과 조회 조건이 공존한다.예시를 들어보자.학생 ID와 이름이 있는 학생 테이블과과제ID, 학생 ID, ..
2026.05.31
-
Stateful과 Stateless는 무엇인가?
웹 개발을 하다보면 Stateless 같은 말을 한번씩 들어봤을 것이다.오늘은 Stateless가 뭐고 Stateful과의 차이는 무엇인지 알아보려고 한다. State(상태)Stateless는 말 그대로 State(상태)가 없는 것이고 Stateful은 State(상태)가 있는 것이다.그럼 State가 무엇인가?서버의 State는Server가 Client와 주고 받은 정보를 저장한 것이다.예를 들면 "로그인 정보, 장바구니 상품 리스트" 등이 있을 것이다.Stateful (상태유지)Stateful은 아까 말한 상태를 서버가 보존하는 것이다.서버가 클라이언트와 통신하면서 이전에 통신한 값을 저장하는 것이다.홈페이지에서 로그인을 한번 하면 페이지를 이동해도 로그인 정보가 남는 것이 대표적인 Stateful의..
2026.05.05
-
SQL 튜닝을 위한 6가지 기본 방법
안녕하세요지난 포스트에서는 쿼리튜닝이 무엇이고쿼리 실행 계획(Query Plan)을 어떻게 보는지에 대해 알아봤습니다. 쿼리 튜닝에 대하여(기초)이번 프로젝트에서 쿼리를 다룰일이 많다. DB를 많이 사용하다보니 select할 때 시간이 많이 걸리기 때문에 쿼리튜닝이 필수였다.쿼리튜닝은 DBA가 해주지만 DBA가 바빠서 그런지 응답 시간이 오래ytlive.tistory.com 이번 포스트에서는 지난 포스트에 이어서 SQL 튜닝을 위한 6가지 방법에 대해 알아보도록 하겠습니다. 쿼리 튜닝의 기본원칙 6가지 쿼리 튜닝을 하는 방법은 다양하지만많이 알려져 있는 6가지 방법을 소개시켜드리려고 합니다.간단하게 먼저 말씀드리자면1. 좌변 가공 지양2. 복잡한 WHERE절 OR 대신 UNION 사용3. 필요한 Row..
2026.04.11
-
쿼리 튜닝에 대하여(기초)
이번 프로젝트에서 쿼리를 다룰일이 많다. DB를 많이 사용하다보니 select할 때 시간이 많이 걸리기 때문에 쿼리튜닝이 필수였다.쿼리튜닝은 DBA가 해주지만 DBA가 바빠서 그런지 응답 시간이 오래걸리고 있어서내가 공부해서 튜닝해보자! 라는 생각으로 쿼리 튜닝에 대해 공부하게되었다. 쿼리 튜닝은 무엇인가?쿼리 튜닝은 DB에서 데이터를 꺼낼때 사용할 수 있는 '지름길'을 찾는 과정이다.즉, 쿼리를 최적화 하는 과정을 쿼리 튜닝이라고 한다.같은 결과를 가진 쿼리라도 더 빠르게 조회할 수 있는 길이 있다. 쿼리 실행 계획쿼리 튜닝을 위해서는 쿼리 실행 계획을 확인해봐야한다.쿼리 실행 계획은 DB엔진이 어떻게 해당 SQL문을 실행할지를 확인하는 기능이다.SELECT * FROM event;위 쿼리에 대한 실행..
2026.03.29
-
Kafka를 활용한 비동기 시스템
이번 프로젝트에서 Apache Kafka를 활용하여 MSA(MicroService Architecture)에서 비동기처리를 한다고 한다.근데 Kafka.. AWS 자격증 시험에서 본거 같은데 왜 얘로 비동기 처리를 하지 궁금해서Kafka가 뭐하는 친구인지 어떻게 왜 비동기처리를 얘로 할 수 있는지 공부해보려고한다. Kafka란 무엇인가Apache Kafka는 실시간으로 스트림 데이터를 수집하고 처리하는데 최적화된 분산 이벤트 스트리밍 플랫폼(Distributed Data Streaming Platform)이다. Kafka란? - Apache Kafka 설명 - AWSApache Kafka란? 기업에서 Apache Kafka를 사용하는 이유, AWS에서 Apache Kafka를 사용하는 방법.aws.ama..
2026.03.14
-
CORS에는 왜 CSRF와 XSS가 따라 나올까
지난 스터디에서 CORS 너는 누구인가웹 개발을 하다보면 마주칠 수 밖에 없는 CORS 에러안겪어본 개발자는 없을거다.오늘은 CORS 에러가 뭐고 왜 등장하게 되었는지 그리고 해결방법까지 알아볼 예정이다. CORS란 무엇인가?CORS를 풀어ytlive.tistory.com CORS(Cross-Origin Resource Sharing)에 대해 설명하면서 CORS의 이전에 SOP(Same-Origin Policy) 가 존재하고 SOP는 CSRF(Cross-Site Request Forgery)나 XSS(Cross-Site Scripting) 등의 공격으로 인한 데이터 탈취를 예방할 수 있다고 이야기를 했다.그런데 CSRF와 XSS에 대해 알아보니정말 SOP(동일 출처 정책)이 CSRF와 XSS를 방어할 ..
2026.02.21