이 글의 주제인 File Permission 에 대해 이야기 하기 전에 글을 작성하게 된 계기를 먼저 이야기해보고자 합니다. 서버 개발을 하다보면 직접 원격 Linux 서버에 들어가 작업을 하는 경우가 많습니다. 그러던 중 File permission이 없어 작업을 진행할 수 없던 경우가 종종 있었는데요. 그럴 때마다 어떤 권한이 부족하고, 어떤 것이 원인인지 확실히 파악하지 못하니 답답했었습니다. Permission을 풀기 위해 그냥 구글링으로 chmod ~ 명령어를 가져와 사용하곤 했죠. 위와 같은 외계어(라고 생각했던 것)를 보면서 ‘File Permission 정보인 건 알겠는데, 어떻게 해석하고/어떻게 수정되는거지?’라는 궁금증이 들었습니다. 그래서 이 글에서 이 궁금증을 해소해보고자 합니다. ..
Topic 1. 당신의 인생이다. 개발자들의 다양한 여러 불만 → 현재 업무, 기술의 변화, 성과, 연봉, 팀 분위기 등 이에 대한 답은 한결 같다. “왜 직접 바꾸지 않는가?” 당신에게는 스스로의 행동을 직접 결정할 수 있는 힘이 있다. 필요한 사항이 있으면 요구해보기 안된다 했을 때 정말 원하는 거면 다른 곳 찾아보기 여가시간 쪼개서 재미있어 보이는 것 공부하기 이 업계는 여러분에게 놀랄 만큼 다양한 기회를 준다. 주도적으로 행동해서 그 기회를 잡아라. Topic 2. 고양이가 내 소스 코드를 삼켰어요. 실용주의 철학 중 하나 “자신과 자신의 행동에 대해 책임을 지는 것” 기술적 문제? → 정직하고 솔직해져야 한다. 실수나 무지 같은 단점도 인정해야 한다. 팀 내 신뢰 팀이 여러분을 믿고 의지할 수 ..
알림 시스템은 단순히 모바일 푸시 알림에 한정되지 않음. 책에서는 모바일 푸시 알림, SMS 메시지, 이메일 3가지로 분류함. 1단계, 문제 이해 및 설계 범위 확정 질문을 통한 설계 범위 확정 Q) 어떤 종류의 알림 ? 푸시 알림, SMS 메시지, 이메일 iOS, Android, Laptop/Desktop 지원해야 함 Q) 실시간 시스템인지? 연성 실시간 시스템 (Soft real-time) 가능한 빨리 전달되어야 하지만, 요청이 몰린 경우 약간의 딜레이 허용 Q) 사용자가 알림을 받지 않는 옵션이 존재하는지? 사용자가 알림을 허용하지 않으면 알림을 받지 않음 Q) 하루에 몇 건의 알림? 천만 건의 모바일 푸시 백만 건의 SMS 메시지 5백만 건의 이메일 2단계, 개략적 설계안 제시 및 동의 구하기 알..
WebClient 를 사용하되, block 을 사용한다? 이게 RestTemplate 같은 Blocking 기반의 http client를 사용하는 것과 무엇이 다를까? 사실 단일으로 하나의 request를 다루는 것이라면 성능이 거의 같을 것이다. 어느정도 각 http client 구현도에 차이가 있을 수 있지만, 유의미한 차이가 있지는 않을 것이다. 아래는 아주 대충 작성해 본 예시 // WebClient var webclientResponse = WebClient.create("some-url").get().retrieve().bodyToMono(String.class); webclientResponse.block(); // RestTemplate var restTemplateResponse = ne..
작성하고 나니 여러 개념에 대해 단어들을 통일 시 못한 것 같네요. 혹시 이상한 점 있으면 편하게 피드백 부탁드립니다. 요즘 프로젝트에서 WebFlux를 적극적으로 다루고 있는데, just/defer/fromCallable를 다루다보니 조금 헷갈리는 점이 있어 정리해놓으려 한다. 모든 메서드는 Mono 를 중심으로 정리했다. just just는 구독 시 특정 값을 반환(emit)하는 메서드이다. 제일 기본적인 메서드이기 때문에 처음 Reactor를 공부하면 거의 제일 처음에 배웠던 것 같다. 공식문서를 보면 설명이 다음과 같다. Create a new Mono that emits the specified item, which is captured at instantiation time. 여기서 insta..
Transaction이 제공하는 안정성 보장(safety guarantee)은 흔히 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)를 의미하는 ACID로 알려져있다. 많은 강의, 책에서 Transaction을 설명할 때, 필수적인 개념으로 등장하며 무조건 보장되어져야하고 모든 데이터베이스에서 지켜지고 있는 것처럼 설명한다. 하지만 현실에서는 참 애매모호하다. ACID의 의미가 모호한 부분이 있어서 데이터베이스마다 ACID 구현이 제각각이다. ACID에 대해 각각 살펴보자. Atomicity 원자성은 쓰기 작업 중 일부만 성공한 후 결함이 생기면 어떤 일이 생기는지 이야기한다. 여러 쓰기 작업이 하나의 원자적인 트랜잭션으로 묶여 있는데 ..
분산 시스템에서 사용될 유일 ID 생성기 관계형 데이터베이스의 auto_increment 속성을 사용하면 안되나? 분산 시스템 → 데이터베이서 서버 한 대로 버틸 수 있을 것인가? 여러 데이터베이스 시스템 → 지연시간/여러 조건 불충족 등의 문제가 발생할 수 있다. 1단계, 문제 이해 및 설계 범위 확정 요구사항 ID는 유일해야 한다. ID는 숫자로만 구성되어야 한다. ID는 64비트로 표현될 수 있는 값이어야 한다. ID는 발급날짜에 따라 정렬 가능해야 한다. 초당 10,000개의 ID를 만들 수 있어야 한다. 2단계, 개략적 설계안 제시 및 동의 구하기 여러 선택지 고려 다중 마스터 복제 앞서 말했듯 데이터베이스의 auto_increment 기능을 활용하는 것 1만큼 증가시켜 얻는 것이 아닌 데이터베..
예시 코드는 여길 참조해주세요. https://github.com/KimDoubleB/spring-learning/tree/master/junit5/tag Tag JUnit5에서는 Tag 어노테이션을 제공하고 있습니다. Overview Tag는 어떤 기능을 하는 어노테이션일까요? 공식문서에 의하면 다음과 같습니다. Tags are a JUnit Platform concept for marking and filtering tests. The programming model for adding tags to containers and tests is defined by the testing framework. For example, in JUnit Jupiter based tests, the @Tag ann..
- Total
- Today
- Yesterday
- c++
- tag
- k8s
- 알고리즘
- hexagonal architecture
- 일상
- Spring
- Kubernetes
- HTTP
- jasync
- python
- Istio
- boj
- docker
- gradle
- WebFlux
- 로그
- java
- MySQL
- 하루
- 비동기
- 쿠버네티스
- 백준
- Log
- container
- 클린 아키텍처
- Algorithm
- Clean Architecture
- Intellij
- Spring boot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |