전체 글 (186) 썸네일형 리스트형 서버에서 rm 실수를 줄일만한 방법 들어가기 전에특정 상황에선 필요 없는 파일을 지워서 공간을 확보하겠지만 내 기준 대부분의 상황에서는 파일을 지우기보단 손 안 닿는 곳에 옮겨두는 게 낫다 생각한다. 즉, 저장공간 차지하는 문제가 삭제로 발생하는 문제보다 덜 위험하다 생각한다 주의할 점리눅스를 바닐라로 설치할 때 /etc 내부 설정 파일들에 이 방법을 쓰면 매우 위험하다그 쪽을 만질 상황이 오진 않겠지만 가끔 몇몇 블로그들을 보면 극단적인 방법들을 소개하기 때문에 해당 파일들을 만지게 된다면 반드시 상급자한테 물어보자1. 메모장에 적고 복사하기생각보다 탭 자동완성으로 인한 실수가 잦다. 특히 명령어 순서나 철자 하나 빼먹는 경우 많다2. mv [삭제할 파일] ~/trash리눅스엔 휴지통이 없다. 홈 디렉토리든 어디든 휴지통 역할을 하는 디.. [Java] 무지성으로 final 쓰지 않기 문제 제기코드 리뷰 과정에서 immutable 을 아는지란 질문을 받았다.처음엔 final 키워드를 사용해 불변으로 만드는 것이라 생각했었다.하지만, 컬렉션을 사용할 때 immutable을 제대로 보장하지 않는다는 걸 알게 됐다.한 줄로 요약하면 뒷문이 열려있었다고 보면 된다. immutable을 보장하는 방법은 다음과 같다.클래스의 하위 클래스화 방지setter 메서드 사용 X외부 참조를 취하는 생성자 관리final 객체 참조를 반환하는 Getter 처리모든 필드에 private final 사용왜 final을 쓰나?1. gc 오버헤드를 감소시킬 수 있다.오버헤드가 주제가 아니라 더 다루진 않는다.링크: https://docs.oracle.com/javase/tutorial/essential/concur.. 삼성 청년 SW 아카데미(싸피, SSAFY) 9기 수료 후기 수정 이력- 25.02.09 과도한 붉은 글씨 조정 및 내용 수정 ???: 오늘의 TMI)... 싸피 입과하기 전 후기 글들을 통해 정보를 수집했지만, 내가 원하는 정보를 찾기 힘들었다.내 생각과 다르게 진행됐던 부분 + 알아두면 좋은 점 위주로 적었다. 준비 과정에 대해선 아래 링크를 참고https://brorica.tistory.com/211 SSAFY 9기 전공자 합격 후기이 글을 쓴다는 것은 올해 취업이 안 된 걸 광고하는 거라 써야 되나 고민을 좀 했다. 지원할 때 너 정도면 ssafy는 그냥 합격한다는 말을 많이 들었고 실제로도 면접 본 후에 합격을 확신했다. 에brorica.tistory.com왜 했나?취업 못해서요컴공과인데 이걸 왜 해요? 란 의문을 제기하는 면접관 분들도 많았다.왜 싸.. 자바가 엔진단에서 어떻게 동작할까 큰 흐름은 다음과 같다. JIT 컴파일러 (Just-In Time Compiler) 인터프리터에서 읽은 코드를 또 읽으면서 생기는 부하 문제가 있다. 해결 수단으로 메서드를 다시 읽지 않고 JIT 호출을 통해 기계어를 바로 읽는다. 관련 기술인 JRockit 기준 스레드를 모니터링해 자주 사용되는 메서드의 기계어를 저장해놓는다. 자주 사용되는 메서드라 판별될 때 까진 인터프리터가 바이트코드를 한 줄씩 해석하는 문제가 있다. 즉, 재시작 등에서 발생하는 콜드 미스의 비용이 매우 크다. 네이티브 컴파일러와 차이? C의 경우 .exe, .elf 같은 형태로 디스크에 저장되지만 Java의 JIT는 JVM의 메서드 영역에 저장된다. 즉, 휘발성이다. 메서드 영역에 어떤 형태로 저장됐는지는 관련 문서가 없어 알 수.. redis 2.0 분석 들어가기 전에 Redis 2.0 버전을 기준으로 작성한 글입니다. 해당 버전의 코드는 다음 링크에서 확인하실 수 있습니다. http://redisgate.kr/redis/introduction/redis_release2.php Redis Release Notes 2 redisgate.kr 해시 테이블 resize 해시 테이블을 resize 하는 과정에서 데이터를 옮겨야 하기 때문에 다른 요청을 수행할 수가 없다. 이를 해결하기 위해 2버전에선 db 당 해시 테이블을 2개로 만들어 관리한다. 0번 해시 테이블이 메인이지만, resize가 된 시점부터 1번 해시 테이블이 메인이 된다. 데이터를 모두 옮기면 1번 해시 테이블이 0번으로 변환된다. 이 작업은 cron을 통해 주기적으로 옮기거나 조회, 삽입, 수.. [java] Spring 애플 로그인 구현 과정 애플 로그인은 구글이나 국내 소셜 로그인과는 다른 방식으로 구현해야 한다. 관련 포스트를 참고해 구현했지만, 일부 포스트는 필요 이상으로 의존성을 사용했고 무엇보다도 내 방식으로 정리를 해놔야 나중에 애플 로그인이 기억나지 않을 때 빠르게 이해하려고 작성했다. swift와 Java Spring Boot를 사용했고, 내 역할은 백엔드였기 때문에 swift 코드는 올리지 않는다. 애플 소셜 로그인 구조 다른 로그인이 인증 서버에서 받은 토큰을 가지고 리소스 서버에 요청하면 사용자가 제공하기로 한 정보를 얻는다. 애플 로그인의 경우 id_token 이란 jwt 토큰을 주고 백엔드에서 이 토큰이 애플에서 만든 토큰인지 검증하고, Claim을 추출해 사용자 정보를 가져온다. 1, 2 번은 IOS에서 담당할 부분이.. redis 1.0 분석 - 공유 메모리 풀 업데이트 내역 2023.12.16 현재도 공유 메모리 기술을 쓰는지에 대한 글 추가 들어가기 전에 Redis beta 1 버전을 기준으로 작성한 글입니다. 해당 버전의 코드는 다음 링크에서 확인하실 수 있습니다. http://redisgate.kr/redis/introduction/redis_release1.php Redis Release Notes 1 redisgate.kr 해당 기술고 관련된 포스트입니다. https://groups.google.com/g/redis-db/c/cHTu12jRr78/m/h-L0-EOn9WgJ Object sharing is fun! Hello, some hour ago I implemented a new feature in Redis, object sharing, in .. 초기 Redis 분석 - 이벤트 루프 들어가기 전에 Redis beta 1 버전을 기준으로 작성한 글입니다. 해당 버전의 코드는 다음 링크에서 확인하실 수 있습니다. http://redisgate.kr/redis/introduction/redis_release1.php Redis Release Notes 1 redisgate.kr 이벤트 종류 파일 이벤트: 클라이언트 생성, 커맨드 수행과 DB 백업 과정에서 발생하는 응답에 대한 이벤트 타임 이벤트: redis 내부에서 주기적으로 돌아가는 cron 작업. 초기에는 최소 사이즈를 만족하지 못하는 해시 테이블을 축소하는 작업만 한다. 작동방식 이벤트 루프를 통해 지속적으로 파일, 타임 이벤트를 확인하고 처리한다. 하나의 while 문으로 돌아가기 때문에 redis는 싱글 스레드로 처리된다. 다만.. 이전 1 2 3 4 5 6 7 ··· 24 다음