Quantcast
Channel: Charsyam's Blog
Browsing all 122 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

[입 컨설팅] 오일나우에서의 Redis 사용 방법 개선하기 – PART #1

다음 블로그는 Open Up의 도움을 받아서 작성되었습니다. 오일나우는 운전자에게 필요한 정보를 제공하는 서비스를 제공하는 스타트업입니다. 오일나우는 다음과 같은 정보들을 제공하고 있습니다. 오일나우Oilnow운전자에게 딱 맞는 유용한 정보를 추천해드립니다.– 알고리즘 적용을 통해 내 위치 인근 가장 가까우면서도 저렴한 주유소를 자동 추천해드립니다.– 주유...

View Article


[입 개발] Spark 에서 Database 빨리 덤프하는 법(Parallelism)

전통적으로 Hadoop 기반에서 Database를 덤프할 때는 sqoop을 많이 사용합니다. 그런데… Spark에서는 그냥 바로 database에서 jdbc를 통해서 데이터를 읽을 수도 있습니다.(의외로 이걸 모르는 경우가 많습니다.) 그래서 우리는 다음과 같이 Database에서 데이터를 덤프합니다. val df = spark.read...

View Article


[입 개발] Spark SQL Query to Snowflake Query

Data Engineering 을 하다보면, 여러가지 툴을 사용하게 되는데, 그러게 되면서 생기는 필수적인 상황이, 툴에 따른 쿼리의 변환입니다. Hive Query를 사용했다면야, Spark으로 바꿀때는 바로 전환이 되니, 아무런 걱정이 없지만, Redshift라든지, SQL만 해도 Mysql과 다른 RDBMS의 쿼리들이 많이 다릅니다. 특히 요새 가장...

View Article

[입 개발] Redis 에서 Redis Cluster 로 갈 때 주의해야할 부분들

Redis 를 사용하다 보면, 결국 데이터의 관리를 위해서 Redis Cluster 의 사용을 고민하게 됩니다. 그러면 Redis 를 사용하다가 Redis Cluster 로 가게 될 때 주의해야 할 부분은 어떤 것인지 얘기해보도록 하겠습니다. Redis Cluster 에서는 DB 0만 사용할 수 있습니다. Redis를 사용하는 많은 경우 select 명령을...

View Article

[입 컨설팅] Self Managed Redis 가 좋을까? Managed Redis 가 좋을까?

다음 블로그는 Open Up의 도움을 받아서 작성되었습니다. Redis 를 사용하는 방법은 여러가지가 있습니다. On-Premis 에서도 직접 서버에 Redis를 설치하고 이용하는 Self Managed 형태나 회사에서 제공하는 Managed 형태가 있습니다.(큰 N이나 K 같은 회사에서는 내부에서 관리해주는 일종의 Managed 형태로 Redis를...

View Article


Image may be NSFW.
Clik here to view.

[입 개발] MariaDB Connector 와 AWS Aurora

먼저 저는 자바를 잘 모르고 AWS Aurora도 잘 모르고 MariaDB Connector도 잘 모르는 초초보에 자바맹인것을 먼저 밝히고 해당 글을 작성합니다. 지인 분의 서비스가 Aurora RDS Mysql 을 쓰다가 Failover 를 한다고 해서 뭔가 잘못된 정보를 드렸다가, 자세히 보다보니, AWS Aurora의 Manual Scale Up을...

View Article

[입 개발] AWS VPC Peering

AWS VPC Peering 을 위해서 체크해야 하는 부분 A VPC 에서 B VPC로 VPC Peering 신청(다른 계정의 VPC도 가능)B VPC에서는 VPC Peering 수락B VPC와 통신해야 하는 A VPC의 모든 Subnet 에 B VPC로의 routing 설정해당 Subnet 에 할당된 Route Table 들에 추가해 주면 된다.항목은...

View Article

Image may be NSFW.
Clik here to view.

[입 개발] Redis LRU(Least Recently Used Algorithm)에 대해서

Redis 는 데이터를 영구적으로 저장하는 Persistent Store 의 역할도 하지만, 주로 데이터의 접근을 빠르게 하기 위한 Cache 로 많이 사용됩니다. Redis 는 메모리를 데이터 저장소로 이용하기 때문에, Disk를 사용하는 다른 솔루션 보다 적은 양의 데이터를 저장하게 되고, 이로 인해서 최대치 까지 데이터를 저장하면, 새로운 데이터를...

View Article


Image may be NSFW.
Clik here to view.

[입 개발] 스타트업을 위한 AWS 로그 시스템 Part #1

스타트업에 다니고 있다보니 당장 필요하지는 않지만, 로그 수집 시스템을 구축해야 했습니다.(당장 필요하지 않은데 왜 하는거지!!!) 라는 의문이 들 수 있는데…(들어야 정상입니다.), 사실 꼭 초반에 구성하지 않더라도 큰 문제는 없습니다. 아직 저희는 서비스가 출시 전이기 때문에, 출시 전에 로그를 수집하더라도 큰 문제는 없지만, 다음과 같은 생각이...

View Article


Image may be NSFW.
Clik here to view.

[입 개발] 스타트업을 위한 AWS 로그 시스템 Part #2

1부에서는 CloudWatch Log Stream 에 데이터를 저장하는 것 까지 살펴보았습니다. 그런데 그렇게 로그를 보낸다고 하면 고민해야 할 부분들이 있습니다. 로그 파일의 사이즈/var/log/myservice/myservice.log 에 파일을 저장한다고 가정을 하겠습니다. 그러면 해당 파일에 계속 로그가 쌓이다 보면 어떤 문제가 발생하게...

View Article

Image may be NSFW.
Clik here to view.

[입 개발] 스타트업을 위한 AWS 로그 시스템 Part #3

로그를 분석하거나 저장할 필요가 없는 서비스면 상관이 없겠지만, 결국 대부분의 서비스는 로그를 저장하고 이를 통해서 서비스를 상황을 분석하게 됩니다.(혼자서 테스트로만 쓰는 서비스면 그럴 필요가 없죠.) 그래서 이제 마지막으로 어떻게 s3에 저장할 것인가에 대해서 얘기를 할려고 합니다. 2부에서도 보였지만, 아래 형태 처럼 S3에 저장이되면 EMR,...

View Article

Image may be NSFW.
Clik here to view.

[입 개발] Redis 7.x 에서의 ShardedPubSub

오래간만에 Redis 7에서 도입될 Sharded PubSub 에 대해서 좀 분석을 해보게 되었습니다. Sharded PubSub 은 기존 Redis Cluster 에서의 PubSub 의 단점을 해결하기 위해서 도입된 기술입니다. 먼저 Sharded Pub/Sub을 이야기하기 전에 Redis Cluster에서의 PubSub을 알아보고 단점을 먼저...

View Article

Image may be NSFW.
Clik here to view.

[입 개발] Spring 의 CacheEvict 에서 allEntries=true 는 Redis에서 어떻게 동작하게 될까?

최근에 우연히 아는 분의 글을 보다가 갑자기 궁금함이 생겼습니다. 네이버 클라우드의 Redis를 사용중인데 CacheEvict 에서 allEntries = true 를 줬을 경우, 동작이 실패한다는 것이었습니다. Spring에서 Cache를 쉽게 제공하는 방법중에 @Cacheable, @CachePut @CacheEvict 를 제공합니다. (물론 저는 이걸...

View Article


Image may be NSFW.
Clik here to view.

[입 개발] Redis 지표 중에 instantaneous 정보들은 어떤걸까?

Redis 에서 info를 해보면 여러가지 정보들이 있습니다. # Stats total_connections_received:1 total_commands_processed:0 instantaneous_ops_per_sec:0 total_net_input_bytes:6 total_net_output_bytes:0...

View Article

[입 개발] memcached slab 구조

slab MAX_NUMBER_OF_SLAB_CLASSES = 63 + 1로 정의됨 #!c static slabclass_t slabclass[MAX_NUMBER_OF_SLAB_CLASSES]; slabclass_t 구조체는 다음과 같다. slabclass 에서 list_size 는 slab_list 의 capacity 이다. 그리고 slabs는 현재 몇개의...

View Article


Image may be NSFW.
Clik here to view.

[입 개발] 분산 락에 대해서…

서비스를 개발하다 보면, 결국 Lock 이 필요한 시점이 있습니다. 하나의 Process 레벨에서 사용하 수 있는 Lock 부터, 프로레스 들끼리의 경합을 보장하기 위한 Lock 등 사용할 수 있는 것들이 많습니다. 그런데 서비스 레벨에서 고민하게 되면, 서버가 한 대가 아니라 두 대일 때 부터, 단순한 Lock을 사용할 수 가 없습니다. 다르게 말하면,...

View Article

[입 개발] Redis 메모리 해제에 관해서…주로 Expire…

최근에 또 지인에게서 Redis Expire 관련 이야기가 나와서 다시 한번 살짝 정리해 보기로 합니다. Redis 에서는 Expire라는 기능이 있어서 해당 Key의 수명을 지정해줄 수 있습니다. 그래서 수명이 지난 Key는 자동으로 사라지게 됩니다. 이를 이용하면, 실제로 필요없는 Key를 계속 관리할 필요가 없어집니다. 그런데 실제로는 이 메모리...

View Article


[입 개발] aws s3 bucket owner control policy 중에 BucketOwnerFullControl 에 대해서

예전에 Udemy 다닐 때 크게 한 번 당했던 내용인데, 오늘 다시 한번 겪어서 정리합니다. 알고나면 큰 이슈도 아니고…. 결론부터 말하자면, S3 Bucket 을 생성할때는 그냥 BucketOwnerFullControl 설정하는게 좋은데, 이제는 비슷하게 2023년 4월부터 모든 새 S3 버킷에 대한 ACL이 비활성화 되므로...

View Article

[입 개발] AWS InstanceProfileCredentialsProvider 사용시 주의 할 점.

최근에 AWS에서 동작하는 서버에서 다음과 같은 오류가 발생하기 시작했습니다. com.amazonaws.services.s3.model.AmazonS3Exception: The provided token has expired. (Service: Amazon S3; Status Code: 400; Error Code: ExpiredToken; Request...

View Article

[입 개발] java.time.LocalDateTime 에서 해당 날짜의 최소값과, 최대값 구하기

그냥 아주 간단한 내용입니다. 해당 날짜의 시작시간과 끝 시간을 만들고 싶을때가 있는데. LocalDate 를 쓰면 asStartOfDay 라는 메서드를 통해서 쉽게 시작 시간을 구할 수 있습니다. import java.time.LocalDate; import java.time.LocalDateTime; public class Main { public...

View Article
Browsing all 122 articles
Browse latest View live