티스토리

newwisdom's log
검색하기

블로그 홈

newwisdom's log

newwisdom.tistory.com/m

갓 태어난 블로그

구독자
22
방명록 방문하기
반응형

주요 글 목록

  • Saga 패턴 해당 글은 '마이크로 서비스 패턴' 이라는 책에서 다룬 사가 패턴에 대해 정리하였습니다. 분산 트랜잭션? 마이크로서비스 아키텍처에서 단일 서비스 내부의 트랜잭션은 ACID를 보장하지만, 여러 시스템에 얽힌 트랜잭션은 구현하기가 까다롭기 때문에, 여러 서비스에 걸쳐 트랜잭션을 관리할 수 있는 매커니즘이 필요하다. 예시로 '주문 생성'을 본다면(createOrder()), 소비자 서비스, 주문 서비스, 주방 서비스, 회계 서비스 등 여러 서비스에 있는 데이터에 접근해야 하는데, 여기서 여러 DB에 걸친 데이터의 일관성을 유지할 수 있는 수단이 필요하다는 것이다. 이러한 수단 중 하나가 바로 분산 트랜잭션이다. 널리 알려져 있는 분산 트랜잭션 관리의 사실상 표준으로는 X/Open DTP(Distributed .. 공감수 2 댓글수 1 2022. 9. 18.
  • Mocks Aren't Stubs 번역 원문 Mock과 Stub의 차이를 살펴보다가 과거 마틴 파울러의 글을 발견하게 되었다. 이런 논쟁, 차이점도 있었구나를 보는 정도로 이 글을 읽으면서 번역한 내용을 기록한다 https://martinfowler.com/articles/mocksArentStubs.html Mocks Aren't Stubs Explaining the difference between Mock Objects and Stubs (together with other forms of Test Double). Also the difference between classical and mockist styles of unit testing. martinfowler.com 참고로 마틴파울러는 번역에 대한 별다른 제재를 두지 않았다. h.. 공감수 1 댓글수 0 2022. 9. 4.
  • Grafana Loki와 LogQL 에 대해 알아보기 최근에 Grafana Loki 사용법을 익히고, 대시보드 구성을 연구하는데 많은 시간을 들이게 되었다. 이와 관련해 Loki의 개념과 자꾸 헷갈리는 LogQL 문법을 공식 문서 기반으로 정리해보려 한다. Loki란? Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream. 로키는 Promethe.. 공감수 0 댓글수 0 2022. 7. 24.
  • 2022년 상반기 회고글 보호되어 있는 글입니다. 공감수 5 댓글수 2 2022. 7. 10.
  • [Spring Batch] JpaPagingItemReader + JpaItemWriter를 사용했 때겪었던 문제점 (2) (수정중) 다시한번 언급하지만, 이 글의 전제는 '애초에 이렇게 배치를 구현하면 안된다'로, JpaPagingItemReader, JpaItemWriter를 가지고 이것 저것 실험하면서 경험한 내용을 정리한 글이다. 앞 글에서 아직 다 다루지 못한 문제가 남아있다. 바로 "마지막 청크는 5개 쿠폰에 대한 history는 정상적으로 한개씩만 쌓이고 있다" 라는 것이다. (어느정도 감이 왔을 수도 있지만...) 이에 대한 원인은 다른 예제로 설명해보려 한다. JpaItemWriter에서 Dirty Checking으로 엔티티 변경사항을 DB에 반영할 때 문제점 앞 글에서 발생한 자식엔티티 중복 저장에 대한 문제는 결국 reader와 writer에서 서로 다른 entityManager를 사용하고 있었기 때문이었.. 공감수 1 댓글수 1 2022. 6. 26.
  • [Spring Batch] JpaPagingItemReader + JpaItemWriter를 사용했 때겪었던 문제점 (1) 최근 배치를 짜고 운영하다가 참으로 이상한 현상을 겪었는데, 이를 JpaPagingItemReader, JpaItemWriter의 내부 동작과 함께 원인을 정리해보려 한다. (aka. 나의 삽질 기록) 내 삽질 기록을 정리한 글을 통해 말하고자 하는 내용을 미리 정의하고 넘어가자면, 배치 reader로 조회한 엔티티를 그대로 사용하지말고 특정 필요한 값만 dto로 뽑아쓰는 방식을 취하자이다 (엔티티의 수정 x). 이 글은 내가 배치 reader로 조회한 엔티티 그대로를 직접 수정, dirty checking을 이용하다 생긴 문제로, 애초에 이렇게 구현하면 안된다가 전제로 깔린다. 그냥 배치에서 엔티티를 지직 볶고 하다가 깨닫게 된 몇가지 내용들을 정리한 글로 봐주길. 문제상황 예시 먼저 Coupon(쿠폰.. 공감수 1 댓글수 0 2022. 6. 12.
  • 글또 7기를 시작하며 글또 7기에 참여하게 되었슴다 작년 우테코 교육을 받던 때, 몇명 크루들 덕분에 글또라는 모임을 알게 되었다. 글쓰는 개발자 모임이라니, 6기 모집 한참 후에나 글또를 알게되어서 다음 모집이 열리면 기필코 신청하리라 마음 먹었었다. 당시에는 (그때 쓴 글의 퀄리티는 보장 못하지만 🙃)... 내가 배우고 경험하며 성장한 부분들을 남겨야하겠다는 약간의 강박과, 경험한 내용을 기록하고 공유하는 것에 대한 즐거움이 있었기에 꾸준히 기술 글을 작성하고 있었다. 이렇게 작성한 글들은 다른 크루들과 서로 작성한 글들을 공유하면서 좋은 영향력을 많이 받았었는데, 조금 더 넓은 분야에서 다양한 개발자들의 글을 더 많이 접하고 피드백을 받으며 조금이라도 더 질 높은 글을 쓰고 싶다는 욕심이 생겼었다. 그러다 올해는 취업을.. 공감수 6 댓글수 2 2022. 5. 15.
  • @Transactional 메서드에서 다른 클래스의 @Async 메서드를 호출하면? (feat. 트랜잭션과 스레드) 서로 다른 스레드 간 트랜잭션 공유를 초점으로, 스프링이 트랜잭션을 어떻게 관리하는지 아주 일부분 관찰해본 글입니다. (참고) 아주*1000 간단한 테스트 환경 // main에 @EnableAsync @Transactional @Service class TxService( private val testEntityRepository: TestEntityRepository, private val innerService: AsyncService ) { fun saveOneAndCallException() { logger.info("[TxService][saveOneAndCallException] 호출. Thread id: ${Thread.currentThread().id}") // 테스트 엔티티 1 save .. 공감수 7 댓글수 1 2022. 5. 9.
  • 2022.03.1주차 회고 보호되어 있는 글입니다. 공감수 4 댓글수 1 2022. 3. 7.
  • [이펙티브 코틀린] 추상화 설계 이펙티브 코틀린을 읽다가 객체지향을 다룬 부분에서 남기고 싶은 내용들이 있어 조금 발췌하여 가볍게 정리해보았다. 추상화란 컴퓨터 과학에서 추상화는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것이다. 대표적인 예로는 인터페이스가 있다. 클래스라는 복잡한 것에서 메서드와 프로퍼티만 추출해 간단하게 만들었기 때문이다. 프로그래밍에서의 추상화 추상화를 설계한다는 것은 단순히 모듈 또는 라이브러리로 분리한다는 의미가 아니다. 함수를 정의할 때, 그 구현을 함수의 시그니처 뒤에 숨기게 되는데 이가 바로 추상화이다. 만약 코틀린의 maxOf() 함수를 사용하지 않고 다음과 같이 사용한다고 해보자. val biggest = if (z > y) x else y 위 코드는 추상적인 것을.. 공감수 0 댓글수 0 2022. 3. 5.
  • Database Connection Pool (Database) Database Connection Pool이 등장 설명을 위해 JDBC에 대한 개념을 간단히 짚고 넘어가자. JDBC 웹 애플리케이션은 정보 저장이 필요할 때 주로 데이터베이스(Database, 이하 DB)를 이용한다. 이를 위해 WAS는 애플리케이션이 DB로 접근할 수 있는 통일된 방법을 제공해야 하는데, 자바에서는 이러한 통일된 DB 접근을 위해 만든 표준이 바로 JDBC(Java Database Connectivity) 표준이다. JDBC는 애플리케이션이 DB 커넥션을 사용하는 방법에 대해 기술하고 SQL 작업을 하기 위한 API를 제공한다. JDBC 실행 과정 DB 서버 접속을 위해 JDBC 드라이버를 로드한다. DB 접속 정보와 DriverManager.getConnection() Method.. 공감수 0 댓글수 0 2022. 2. 18.
  • 2021년 12월 회고 보호되어 있는 글입니다. 공감수 0 댓글수 0 2021. 12. 31.
  • [Real MySQL 8.0] 5장. 트랜잭션과 잠금 잠금(Lock)은 동시성을 제어하기 위한 기능 트랜잭션은 데이터의 정합성을 보장하기 위한 기능 격리 수준은 하나의 트랜잭션 내에서 또는 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지 결정하는 레벨 트랜잭션 하나의 논리적인 작업 셋에 하나의 쿼리가 있든 두 개 이상의 쿼리가 있든 관계없이 논리적인 작업 셋 자체가 커밋되거나 롤백됨을 보장해주는 것 MySQL 엔진의 잠금 글로벌 락 FLUSH TABLES WITH READ LOCK 명령으로 획득 가능 다른 세션에서 SELECT를 제외한 대부분의 DDL 문장이나 DML 문장을 실행하는 경우 글로벌 락이 해제될 때까지 해당 문장이 대기 상태로 남음 실행과 동시에 MySQL 서버에 존재하는 모든 테이블을 닫고 잠금을 검 mysqldump같은 백업 .. 공감수 0 댓글수 0 2021. 12. 28.
  • [대규모 시스템 설계 기초] 6장. 키-값 저장소 설계 문제 이해 및 설계 범위 확정 키-값 쌍의 크기는 10KB 이하 큰 데이터를 저장할 수 있어야 함 높은 가용성을 제공해야 함. 따라서 시스템은 설사 장애가 있더라도 빨리 응답해야 함 높은 규모 확장성을 제공해야 함. 따라서 트래픽 양에 따라 자동적으로 서버 증설/삭제가 이루어져야 함 데이터 일관성 수준은 조정이 가능해야 함 응답 지연시간(latency)이 짧아야 함 단일 서버 키-값 저장소 가장 직관적인 방법은 키-값 쌍 전부를 메모리에 해시 테이블로 저장하는 것 빠른 속도를 보장하긴 하지만 모든 데이터를 메모리 안에 두는 것이 불가능 할 수도 있다는 약점 개선책 데이터 압축(compression) 자주 쓰이는 데이터만 메모리에 두고 나머지는 디스크에 저장 분산 키-값 저장소 분산 해시 테이블 키-값 쌍.. 공감수 0 댓글수 0 2021. 12. 22.
  • [Kotlin In Action] 8장. 고차 함수: 파라미터와 반환 값으로 람다 사용 고차 함수 정의 다른 함수를 인자로 받거나 함수를 반환하는 함수 코틀린에서는 람다나 함수 참조를 사용해 함수를 값으로 표현할 수 있음 함수 타입 (Int, String) ‐> Unit (x: Int, y: String) ‐> Unit // 코드의 가독성 위해 파라미터에 이름 지정 가능 함수 파라미터의 타입을 괄호 안에 넣고, 화살표를 넣고, 반환 타입을 지정 반드시 반환 타입을 명시해야 함 Unit : 의미있는 값을 반환하지 않는 함수의 반환 타입 인자로 받은 함수 호출 fun twoAndThree(operation: (Int, Int) ‐> Int) { val result = operation(2, 3) // 함수 호출 println("The result is $result") } fun main(ar.. 공감수 0 댓글수 0 2021. 12. 19.
  • [대규모 시스템 설계 기초] 5장. 안정 해시 설계 수평적 규모 확장을 달성하기 위해 사용하는 기술 해시 키 재배치(rehash) 문제 N개의 캐시 서버 부하를 균등하게 나누는 보편적 방법은 serverIndex = hash(key) % N (N은 서버 개수) 해시 함수를 쓰는 것 서버 풀의 크기가 고정되어 있을 떄, 데이터 분포가 균등할 때는 잘 동작 하지만 서버가 추가되거나 기존 서버가 삭제되면 문제가 생김 안정 해시는 이 문제를 효과적으로 해결하는 기술 안정 해시 안정 해시는 해시 테이블 크기가 조정될 때 평균적으로 오직 k/n 개의 키만 재배치하는 해시 기술 k는 키의 개수, n은 슬롯(slot)의 개수 대부분 전통적 해시 테이블은 슬롯의 수가 바뀌면 거의 대부분의 키를 재배치했었음 해시 공간과 해시 링 해시 함수 f로는 SHA-1를 사용한다고 가.. 공감수 0 댓글수 0 2021. 12. 18.
  • [대규모 시스템 설계 기초] 4장. 처리율 제한 장치의 설계 네트워크 시스템에서 처리율 제한 장치(rate limiter)는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제러하기 위한 장치 HTTP를 예로 들면 이 장치는 특정 기간 내 전송되는 클라이언트의 요청 횟수를 제한 API 요청 횟수가 제한 장치에 정의된 임계치를 넘어서면 추가로 도달한 모든 요청은 처리가 중단(block)됨 사용자는 초당 2회 이상 새 글을 올릴 수 없음 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없음 같은 디바이스로는 주당 5회 이상 리워드를 요청할 수 없음 API에 처리율 제한 장치를 둘 때 좋은 점 DDoS(Denial of Service) 공격에 의한 자원고갈 방지 대형 IT 기업들이 공개한 거의 대부분 API 들은 어떤 형태로든 처리율 제한 장치를.. 공감수 0 댓글수 0 2021. 12. 17.
  • [대규모 시스템 설계 기초] 3장. 시스템 설계 면접 공략법 1단계 문제 이해 및 설계 범위 확정 요구사항을 완전히 이해하고 답을 해야한다. 깊이 생각하고 질문하여 요구사항과 가정들을 분명히해야한다. 엔지니어가 가져야 할 가장 중요한 기술 중 하나는 올바른 질문을 하는 것, 적절한 가정을 하는 것, 시스템 구축에 필요한 정보를 모으는 것 요구사항을 파악하기 위한 질문 구체적으로 어떤 기능들을 만들어야 하나? 제품 사용자 수는 얼마나 되나? 회사의 규모는 얼마나 빨리 커지리라 예상하나? 석 달, 여섯 달, 일년 뒤의 규모는 얼마가 되리라 예상하는가? 회사가 주로 사용하는 기술 스택은 무엇인가? 설계를 단순화하기 위해 활용할 수 있는 기존 서비스로는 어떤 것들이 있는가? 2단계 개략적인 설계안 제시 및 동의 구하기 개략적인 설계안을 제시하고 동의를 얻는 것 설계안에 .. 공감수 0 댓글수 0 2021. 12. 14.
  • [대규모 시스템 설계 기초] 2장. 개략적인 규모 추정 Use Back-Of-Envelope-Calculations To Choose The Best Design 참고 문헌 메모리는 빠르지만 디스크는 아직도 느리다 디스크 탐색(seek)은 가능한 한 피하라 단순한 압축 알고리즘은 빠르다 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라 데이터 센터는 보통 여러 지역에 분산되어 있고, 센터들 간에 데이터를 주고 받는 데는 시간이 걸린다 가용성에 관계된 수치들 고가용성(high availability) 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력 퍼센트%로 표현 100%는 시스템이 단 한 번도 중단된 적이 없었음을 의미 대부분의 서비스는 99%에서 100% 사이의 값을 가짐 SLA(Service Level Agrement) 서비스 사업자.. 공감수 0 댓글수 0 2021. 12. 14.
  • [대규모 시스템 설계 기초] 1장. 사용자 수에 따른 규모 확장성 단일 서버 모든 컴포넌트가 단 한대의 서버에서 실행 웹 앱, DB, 캐시 등이 전부 서버 한 대에서 실행됨 사용자 요청 처리 흐름 사용자가 도메인을 이용해 웹 사이트에 접속하면 IP 주소로 변환을 위해 DNS로 질의 DNS 조회 결과로 반환된 IP 주소로 HTTP 요청이 전달됨 요청을 받은 웹 서버는 HTML 혹은 JSON 형태의 응답 반환 요청은 웹 앱과 모바일 앱 두가지 종류의 단말로부터 온다. 데이터베이스 사용자가 늘어나면 단일 서버로는 충분하지 않아 여러 서버를 두어야 함 웹/모바일 트래픽 처리 서버와 데이터베이스 서버를 분리 어떤 데이터베이스를 사용할 것인가? 관계형 데이터베이스 RDBS(Relational Database Management System) ex) MySQL, 오라클 데이터베이스.. 공감수 0 댓글수 0 2021. 12. 13.
  • [Kotlin In Action] 7장. 연산자 오버로딩과 기타 관례 산술 연산자 오버로드 관례란? 어떤 언어 기능과 미리 정해진 이름의 함수를 연결해주는 기법을 말한다. ex) 산술 연산자 - 어떤 클래스에 plus라는 메서드를 정의할 때 그 클래스의 인스턴스에 대해 + 연산자를 사용할 수 있다. 이항 산술 연산자 data class Point(val x: Int, val y: Int) { operator fun plus(other: Point): Point { return Point(x + other.x, y + other.y) } } >>> val p1 = Point(10, 20) >>> val p2 = Point(30, 40) >>> println(p1 + p2) Point(x=40, y=60) operator 키워드와 지정한 함수 이름을 사용해서 연산자를 오버로딩.. 공감수 2 댓글수 2 2021. 12. 10.
  • JCF [10분 테코톡] ⚾️ 제이온의 JCF을 들으며 정리한 글입니다. JCF란? Java Collections Framework 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓은 것 도입 배경 JCF가 도입되기 이전에는 데이터를 그룹핑하는 방법으로는 Array, Vector, Hashtable 등이 있었다. 이 컬렉션들의 사용 목적이 같더라도 각각의 컬렉션에서 사용하는 문법이 다른 문제가 있었다. 때문에 공통 인터페이스가 필요하다고 판단하였고, 이로인해 탄생한 것이 JCF이다. JCF의 계층 구조 크게 Collection 인터페이스와 Map 인터페이스로 나눌 수 있다. Collecti.. 공감수 0 댓글수 0 2021. 12. 8.
  • Hashtable, HashMap, ConcurrentHashMap 간단 비교 HashMap, Hashtable, ConcurrentHashMap Map 인터페이스를 구현하고 세가지의 구현체는 비슷하지만 조금씩 다른 차이점을 가지고 있다. Hashtable 해시 테이블은 형태로 데이터를 저장하는 자료구조 중 하나이다. 내부적으로 배열을 사용해 데이터를 저장하는데, 이 때 각각의 Key 값에 해시 함수를 적용해 이 배열의 고유한 index를 생성하고 값을 저장, 검색할 때 사용한다. 자바에서는 java.util 패키지 안에 Map 인터페이스를 구현한 HashTable을 사용할 수 있다. 메서드에 붙어있는 synchronized put 메서드를 보면 null 값을 허용하지 않고 있음을 볼 수 있다. Hashtable 클래스에서 구현하고 있는 모든 메서드를 보면 synchronized .. 공감수 1 댓글수 2 2021. 12. 7.
  • JPA Auditing과 제대로 알아야 할 @PreUpdate JPA Auditing? 서비스를 운영하다보면 데이터가 변경되었을 때 누가 값을 변경했고, 언제 변경했는지를 남겨야할 때가 있다. Spring Data Jpa 에서는 이에 대해 어노테이션으로 편리하게 Audit(감시) 기능을 제공해주고 있다. 엔티티를 영속성 컨텍스트에 저장하거나 조회를 수행한 후 수정하게 되면 이에 대한 변경 시간 등을 자동으로 매핑하여 데이터베이스에 반영해주게 된다. 사용 방법 1. @EnableJpaAuditing 추가 해당 어노테이션을 main 메서드가 있는 애플리케이션 클래스에 추가한다. @EnableJpaAuditing @SpringBootApplication public class NoltoApplication { public static void main(String[] a.. 공감수 7 댓글수 1 2021. 12. 3.
  • 2021년 11월 회고 - 1 보호되어 있는 글입니다. 공감수 0 댓글수 0 2021. 12. 1.
  • DB Replication [10분 테코톡] ✌️ 영이의 Replication을 들으며 정리한 글입니다.. Replication이란? 한 서버에서 다른 서버로 데이터를 동기화하는 것 원본 데이터를 가지는 서버를 Source 서버 복제된 데이터를 가지는 서버를 Replica 서버 Why? 부하를 줄이기 위해서 (Scale-out) 갑자기 늘어나는 트래픽을 대응하는데 유연한 구조 데이터 백업 레플리카를 안하더라도 백업을 해야함 백업 과정은 실제 실행중인 쿼리들에 영향을 줄 수 있음 레플리카 서버에서 데이터 백업을 실행하여 소스 서버에서 백업 시 발생하는 문제 해결 데이터 분석 분석용 쿼리는 대량의 데이터를 조회하고, 쿼리 자체가 무거운 경우가 많음 소스 서버에서 하게 되면 문제가 될 수 있으니, 레플리카 서버에서 분석용 쿼리만 전용으.. 공감수 0 댓글수 0 2021. 11. 20.
  • 트랜잭션과 Spring의 선언적 트랜잭션에 대하여 트랜잭션이란? 더이상 나눌 수 없는 논리적인 작업 단위를 의미하며, 데이터베이스에서는 상태를 변경시키기 위해 수행하는 작업 단위이다. 스프링에서 선언적 트랜잭션 스프링에서는 트랜잭션 처리를 지원하는데, 그 중 한 방법으로 @Transactional 어노테이션을 클래스 혹은 메서드 위에 추가할 수 있다. 이를 선언적 트랜잭션이라고 부른다. 트랜잭션의 성질 (ACID) 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질 Atomicity - 원자성 더 이상 쪼갤 수 없는 원자의 성질 한 트랜잭션 내에서 실행한 작업들은 하나로 간주 COMMIT이거나, ROLLBACK 이거나 Consistency - 일관성 트랜잭션이 성공적으로 완료되면, 일관성 있는 데이터베이스의 상태를 유지함 ex) 트랜잭션.. 공감수 1 댓글수 0 2021. 11. 20.
  • Nginx를 이용한 로드 밸런싱, 무중단 배포까지의 고찰 로드 밸런싱 적용, 덤으로 무중단 배포까지 왜 로드밸런싱? 로드 밸런싱, 무중단 배포 설계에 대한 내용만을 중점적으로 보여주기 위해 앞 단의 프론트 인프라 구조와 DB Replication 적용 후의 구조는 잠시 생략한다. 로드 밸런싱을 적용하기 전, 웹서버 한대는 WAS 하나를 가리키고 있었다. 이 경우 수많은 요청이 오더라도, 우리는 서버 한대 분량의 부하만을 견딜 수 있었다. 하지만, 놀토의 사용자가 늘고 또 이 사용자들이 동시적으로 혹은 처리 비용이 높은 트래픽이 많아질 경우를 고려할 필요가 있다. 이 때 사용할 수 있는 기술이 로드 밸런싱인데 간단히 말하면 여러대의 서버에 (여러 고려사항을 적용해) 적절하게 요청을 분산하는 기술이다.​ 장점 한 대의 서버의 부하를 분산시킬 수 있다. 한 대의 서.. 공감수 7 댓글수 0 2021. 10. 28.
  • [우아한 테크코스 3기] 웹 백엔드 지원 과정부터 프리코스까지 후기 2020년 12월 15일 작성했던 글 감사하게도 우형에서 주관하는 우아한 테크코스 웹백엔드 과정 1차에 선발이 되었고, 우테코에 지원하는 과정과 프리코스를 진행하며 느끼고 배운 것들을 기록해보려 한다. 내가 우테코에 대해 적은 글들이 정답은 아니지만, 혹시나 다음 우테코에 지원하려는 사람들이 이 글을 보게 된다면, 우아한 테크코스 프리코스를 참가한 사람은 이런 것을 느꼈구나!로 재밌게 봐주면 좋겠다 😀 지원의 서막 어느날. jojoldu님의 주니어 개발자 채용 정보에서 우아한 형제들에서 주관하는 소프트웨어 장인 양성 프로그램 우아한 테크코스 를 보게 되었다. 사이트를 쭉 보면서 이 프로그램이 어떤 프로그램이며, 어떤 교육 과정을 가지고 있는지 쭉 보게되었다. 출처 : 우아한 테크코스 웹 사이트 미션 기반.. 공감수 10 댓글수 0 2021. 10. 6.
  • 인덱싱 [10분 테코톡] 🍫 찰리의 인덱싱을 들으며 정리한 글입니다. Index란? 보통 배열의 위치를 인덱스라고 한다. 결국 데이터가 있는 위치를 특징할 수 있는 정보 ! 단어의 뜻 색인 - 어떤 것을 뒤져서 찾아내거나 필요한 정보를 밝힘 데이터베이스의 Index 사용 목적 대용량 데이터에서 원하는 데이터를 빠르게 조회하기 위해서이다. 결국 SELECT 쿼리의 대용량 데이터 조회 시 조회문 조회 속도를 향상시키기 위함이다. 하지만 INSERT, UPDATE, DELETE 시 성능을 조금 희생해야 한다. 혹은 대용량이 아니면 조회 시 성능 향상이 없나 ? 있긴 하지만 큰 효과는 볼 수 없을 것이다. Index의 작성 / 삭제 Index도 하나의 데이터베이스 객체이다. Oracle, DB2 등에서는 스키마 객체,.. 공감수 0 댓글수 0 2021. 10. 5.
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.