분류 전체보기 400

MyBatis 의 cache

MyBatis 의 cacheMyBatis 에는 두 종류의 캐시가 존재한다.1차 캐시 (Local / Session Cache)2차 캐시 (Global / Mapper Namespace Cache)1차 캐시SqlSession 레벨의 캐시이다.즉 SqlSession 내에서만 유효하기 때문에 서로 다른 SqlSession 간에는 공유되지 않는다.Default로 활성화되어 있다.동작 방식SQL 문장 수행 시 결과를 캐싱하여, 이전과 완전히 동일한 문장이 오면 캐싱된 데이터를 반환한다.즉 완전히 동일한 문장과 파라미터여야 한다는 것SqlSession 이 닫히거나 CUD작업이 발생하면 1차 캐시는 비워진다.2차 캐시SqlSessionFactory 레벨의 캐시이다.즉 동일한 Mapper Namespace 내의 모든 ..

포워드 프록시와 리버스 프록시에 관하여

포워드 프록시와 리버스 프록시에 관하여포워드 프록시클라이언트와 서버 사이에 위치하며, 클라이언트를 대신해 서버에 요청을 전달동작 방식클라이언트 측에서 특정 도메인에 접근 시도해당 요청은 포워드 프록시로 이동포워드 프록시가 도메인에 접근하여 데이터 받아옴해당 데이터를 클라이언트로 전달요런 식으로 실제 클라이언트의 요청을 서버로 전달하고 데이터를 받아오는 과정을 전담하는 것이다.장점클라이언트 보호서버 측에서는 이게 포워드 프록시에서 온 요청이기 때문에 클라이언트를 특정할 수 없다.이 덕분에 악성코드가 포함된 사이트로 접근을 막을 수 있고, 혹은 특정 사이트의 접근을 차단할 수 있다.캐싱을 통한 속도 향상여러 클라이언트가 동일한 콘텐츠를 요청하는 경우 데이터를 캐싱해서 성능을 높인다.리버스 프록시얘는 서버 측..

동시성 처리에 관한 짧은 고민

동시성 처리에 관한 짧은 고민병렬성과 동시성먼저 병렬성과 동시성 두 키워드에 대해서 알아두는 것이 좋다.병렬성여러 작업이 실제로 동시에 여러 CPU 코어에서 실행즉, 작업을 분할하여 동시에 처리하여 시간 단축과 처리량 상승참고로 이거는 여러 CPU 코어가 필요하고 각 코어가 독립적으로 작업을 수행한다.동시성여러 작업이 번갈아 가며 처리되는 것처럼 보이는 것. 실제로 동시에 처리되는건 아니고 여러 작업을 번갈아 수행해서 동시 처리되는 것처럼 보이게 함즉, 작업을 나누어 관리하고 한 작업이 I/O 대기 등으로 멈춰있을 떄 다른 작업을 수행해서 응답성을 높인다.이거는 단일 코어 CPU에서 가능하며 각 작업 시간을 짧게 나누어 수행한다.그러면 여기서 동시성 문제가 무엇일까?동시성 문제동시성 문제란, "공유 자원..

대규모 데이터를 배치로 처리할 때에 알아두면 좋은 내용

대규모 데이터를 배치로 처리할 때에 알아두면 좋은 내용배치가 뭐고 왜 쓰는거지?간단하게 말하자면 데이터나 작업 등을 자동으로 처리하는 방법이다.사용 용도는 다음과 같다.대용량 데이터 처리 : 실시간으로 하기 곤란한 대용량 데이터 처리반복 작업 : 주기적으로 수행되기 때문에 자동으로 되면 좋은 것복잡하거나 리소스가 많이 드는 작업 : 시간이 오래 걸리거나 리소스 소모가 심하면 사용량이 적을 때에 배치로 처리 가능즉, 얘는 개발자가 직접 처리하지 않고 뭉탱이로 처리할 수 있는 용도이고 장점은대용량 처리 가능작업 용이자동화부하 분산등이 있을 것이다.대용량 데이터 사용 시 배치 주의점배치를 사용하면 대용량 데이터를 처리할 수 있다.그런데... 만약 그 대상이 되는 데이터가 진짜 짱많은면 어떨까?생각을 해보면배치..

MySQL Index 설계 방법 With Cardinality(무조건 Cardinality가 높아야 할까에 대한 고찰)

MySQL Index 설계 방법 With Cardinality(무조건 Cardinality가 높아야 할까에 대한 고찰)Cardinality 란 무엇인가?컬럼에 저장된 고유한 값의 개수즉, 전체 데이터의 개수에 비해 고유한 값의 수가 얼마나 되는지를 나타낸다.카디널리티가 높다 : 고유한 값이 많다(겹치지 않는 데이터가 많다.)카디널리티가 낮다 : 고유한 값이 적다(겹치는 데이터가 많다.)그러면 이게 어떤 역할일까?인덱스를 사용하는 목적은 검색 속도의 상승이다.인덱스를 만들 때에 Cardinality 를 고려하면(인덱스를 통해 검색할 데이터의 선택도를 고려한다면) 검색 속도를 상승시킬 수 있다.옵티마이저는 쿼리 문법을 분석하고 의미를 해석할 때, 테이블 크기, 행 수, 컬럼의 Cardinality, 값의 분..

2025구글스터디잼 추천과정 - 03 Introduction to Resposible AI

03 Introduction to Resposible AIAI Responsibly 의 책임이라는 것이 무엇일까?왜 구글은 AI principles 을 넣었을까?조직 내에서 책임감 있는 AI principles의 필요성 파악프로젝트의 모든 과정에서의 결정에 책임감 있는 AI 가 얼마나 영향을 주는지 인식한다.조직이 비즈니스의 요구와 가치에 맞게 AI 도구를 설계할 수 있는지 인ㄱ식한다.이유와 내용AI는 빠르게 발전하고 있지만 완벽하지 않다.잠재적인 문제, 한계나 의도하지 않은 결과에 대한 이해가 필요하다.모범 사례가 없다면 AI는 기존의 문제나 편향을 복제하여 증폭시킬 수 있다.AI의 개발의 각 측면에 사람이 관려한다.사람이 모델이 학습할 데이터를 수집하고 생성한다.AI배포와 AI가 주어진 상황에 적용되..

이론 정리/AI 2025.03.11

[leetcode - 128. Longest Consecutive Sequence] java

문제 설명1. 정렬되지 않은 배열이 주어진다.2. 숫자가 이어지는(1, 2, 3, 4 ... 이렇게) 길이 중 최대값을 구하면 된다.3. O(n) 으로만 가능풀이 과정1. 참고로 O(n) 이라는게 배수까지는 인정(그니까 제곱이나 로그가 아니라 걍 O(2n) 이런거는 어차피 시간 차이가 적기 때문에 O(n) 으로 통일)2. 그래서 정렬하고 차이 구하면 굉장히 간단하다.3. 먼저 배열을 정렬하고4. 다시 한번 돌면서5. 이전보다 지금것이 1만큼 크면 이어지는 숫자이고6. 이전이랑 지금이 같으면 상관 없고(이거는 같은거라 영향 X)7. 2이상 차이가 나면 끊어짐(초기화)8. 하면 끝. 간단하다.코드class Solution { public int longestConsecutive(int[] nums) {..

알고리즘 공부 2025.03.10

2025구글스터디잼 추천과정 - # 02 LLM - Large Language Models

02 LLM - Large Language ModelsLLM 에 대한 정의LLM 사용처에 관하여prompt tuning 과 구글 생성형 AI 개발 툴에 대한 설명LLM 은 딥러닝의 하위 집합이다.LLM 은 특정한 목적을 위해서는 미리 학습되거나 파인튜닝 될 수 있는 크고, 일반적인 목적의 언어 모델이다.LLM 의 핵심 내용LargeLarge training datasetLarge number of parameters즉 큰 데이터를 학습시키고 다양한 파라미터를 활용한다는 것General purpose사람 언어와의 공통점리소스 제한이미 있는 다양한 데이터 셋을 통해 fundamental language models 를 만들어 쓰게 하는 것은 어떨까?Pre-trained and fine-tuned범용 LLM ..

이론 정리/AI 2025.03.10

2025구글스터디잼 추천과정 - 01 Introduction to Generative AI 간략정리

https://www.cloudskillsboost.google/paths/118/course_templates/536이거 정리. 영어를 듣고 한국어로 정리한거라 오역이 많을 수 있음01 Introduction to Generative AI 간략정리배우는 것어떻게 generative AI를 정의하는가어떻게 generative AI가 동작하는가generative AI 타입들에 대한 설명generative AI 어플리케이션들에 대한 설명어떻게 generative AI 를 정의하는가인공지능의 일종으로 다양한 종류의 컨텐츠(텍스트, 이미지, 오디오, 합성데이터)를 생성할 수 있다.그래서 인공지능이 뭘까?몇 가지 설명이 있어야 한다.2가지 자주 나오는 질문이 무엇이 인공지능(AI)인지, 그리고 AI랑 머신러닝(M..

이론 정리/AI 2025.03.09

2025 구글 스터디잼 (AI 과정)

https://sites.google.com/view/2025-study-jams/h1-ai-study-jam?authuser=0 2025 구글 스터디잼 - H1 - AI Study Jam구글 클라우드 AI 스터디잼sites.google.com AI, Google Cloud 에 대해서 배울 수 있는 과정이다.마침 내가 이번에 이랑 AI,  영어를 익히는 것이 목표인데 되게 잘 된 것 같다.6월 8일 전까지... 제대로 달려 봐야할 것 같다. 참고로 다 들으면 선물도 줌^~^ (문제는 살짝 들어 봤는데 좀 빡세다.)