본문 바로가기

전체 글

(424)
Gradle 의존 키워드의 차이점 (compile vs implementation + api, Gradle dependency configurations diff) Gradle 의존 키워드의 차이점 (compile vs implementation + api, Gradle dependency configurations diff) 배경 각각의 특징 및 차이점 Reference 배경 gradle 3.0 부터 compile 키워드가 deprecated 되었다. 각각의 특징 및 차이점 api 또는 compile 가장 상위의 의존을 시작하는 app 에서, 직접 의존하고 있는 것이 의존하고 있는 하위의 간접 의존에도 접근이 가능하다. implementation 가장 상위의 의존을 시작하는 app 에서, 직접 의존하는 것만 가능하다. 추천 사용법 api : app 에서 직접의존+간접의존 하는 내용을 전부 보여주고 싶다면 implementation : app 에서 직접의존 하는 내..
RPC, 근데 이제 Json을 곁들인.. (Json-RPC) RPC, 근데 이제 Json을 곁들인.. (Json-RPC) RPC 란 무엇인가? Json 이란 무엇인가? RPC 가 사용되는 이유 RPC 동작 방식 Json-RPC 특징 추가: gRPC는? HTTP 위에 얹는 Json-RPC 스타일 RPC 란 무엇인가? Remote Procedure Call (원격 프로시져 호출) 언어나 환경 등에 종속되지 않고 서비스 간 프로시저를 호출하도록 해주는 개념 분산컴퓨팅 환경에서 많이 사용됨 프로세스 간 통신 (Inter-Process Communication) 의 한 형태 클라이언트-서버 관계로 요청-응답 시스템 클라이언트에서 서버로 필요한 파라미터를 보내어 프로시저를 동작시킨다. Json 이란 무엇인가? JavaScript Object Notation 데이터 교환 형식..
개발자의 글쓰기 - 책정리 개발자의 글쓰기 완독했으나 그냥 가장 정리해보고 싶은 챕터라서 정리해봄 7장. 기술 블로그 쉽게 쓰고 운영하기 1. 기술 블로그를 쉽게 쓰는 방법 3가지 1. 소재우선 글쓰기 (주제의식을 버리고 소재의식으로 글쓰기) 2. 자기 수준 글쓰기 (핵심 내용만 쓰고 나머지는 독자가 공부할 수 있게 길만 터둔다) 3. 재미있는 글쓰기 (글쓴이의 경험 등을 기교와 녹여낸다) 2. 글의 종류로 목차를 잡는 법 (저, 술, 편, 집) 구분 내용 종류 저 직접 경험하고 실험한 과정이나 결과 개발기, 도입기, 적용기 술 어떤 것을 분석하여 의미를 풀이하고 해석한 것 기술 소개, 용어 분석, 에러 해결 방법 등 편 산만하고 복잡한 자료를 편집해 질서를 부여한 것 프로그램 설치/설정 방법, 튜토리얼, 세미나 후기, 책 리뷰 ..
객체지향의 사실과 오해 (The Essence of Object-Orientation) - 책정리 객체지향의 사실과 오해 (The Essence of Object-Orientation) 역할, 책임, 협력 관점에서 본 객체지향 Roles, Responsibilities, and Collaborations 1. 협력하는 객체들의 공동체 역할, 책임, 협력 역할은 기대되는 책임이 있고, 각 역할들이 협력해서 원하는 것들을 해낸다. 동일한 역할 중복 가능 역할은 대체 가능함 책임을 수행하는 방법은 선택 가능 (동일 요청에 다른 방식 응답 - 다형성) 하나가 여러 역할 수행 가능 객체의 덕목 2가지: 협력적, 자율적 협력은 메시지를 통해 이루어진다. 요청을 표현하는 메시지와, 요청을 처리하는 구체적 방법인 메서드를 분리하는 것은 자율성을 높이는데에 도움이 되고, 캡슐화(encapsulation)와 관련이 깊..
소프트웨어 장인 (프로페셔널리즘, 실용주의, 자부심) 책 정리 소프트웨어 장인 (The Software Craftsman) - 산드로 만쿠소 지음 1. 21세기의 소프트웨어 개발 예전의 개발 문화 새로운 문화 (최근) 소프트웨어 장인정신이 필요해졌다. 2. 애자일 (Agile, 민첩) 나오게 된 배경은 이전 시대의 워터폴 방식의 부족함에서 출발 분류 절차적 관점: 올바른 목표를 향해 가는지 확인 기술적인 관점: 목표한 것을 올바르게 실행하고 있는지 확인 애자일 메니페스토(menifesto, 선언문) 원칙들 실제 애자일을 실행할 때 기업들은 오해를 한다. 절차적인 것을 중시하고 기술적인 것은 무시한다. 소웨 개발자들의 기술은 완벽하고 절차만 고치면 된다는 식의 사고방식은 안된다. 기업 차원에서 소웨 장인정신이 필요하다 3. 소프트웨어 장인정신 정의: 소프트웨어 개발의..
[LeetCode] 771. Jewels and Stones(코딩테스트, 릿코드, tech interview) Hash 쓰는 것 외에 뭐 딱히 퍼포먼스 향상시킬 것이 있나 싶다. // Process // 1. Input // 2. jewels 로 해시셋 만든다. // 3. stones 에서 jewel 이 있는지 확인해서 // 3.1. jewel 이면 counting // 4. Return count import java.util.HashSet; import java.util.Set; public class LeetCode_0771_JewelsAndStones { public int numJewelsInStones(String jewels, String stones) { Set set = new HashSet(); for (int i = 0; i < jewels.length(); ++i) { set.add(jewe..
[Database] Optimistic lock(낙관적 잠금), Pessimistic lock(비관적 잠금) 에 관하여.. Optimistic lock(낙관적 잠금), Pessimistic lock(비관적 잠금) 에 관하여.. 우선 데이터베이스의 격리수준(Isolation level) 에 대하여 알아야 한다. 트랜잭션 격리수준에 관하여(MySQL).. https://itdar.tistory.com/389 목차 각각 어느 상황에서 사용하는 것이 좋을지? Lock 을 하는 이유는? Optimistic lock (낙관적 잠금) 이란? Pessimistic lock (비관적 잠금) 이란? 각각 어느 상황에서 사용하는 것이 좋을지? Optimistic lock (낙관적 잠금) 동시 레코드 업데이트가 드물거나, lock 오버헤드가 높은 것으로 예상될 때 사용한다. 데이터베이스에 연결을 유지하고 있을 필요가 없는 대용량 시스템, 3계층 ..
[Database] 트랜잭션 격리수준에 관하여.. (데이터베이스 Transaction isolation level) [MySQL] 데이터베이스 트랜잭션의 격리수준에 관하여.. (Database transaction isolation level) 목차 트랜잭션 격리수준 이란 무엇인가? 격리수준에 따라 발생할 수 있는 문제점들은? 격리수준의 종류는? 격리수준에 따른 문제 발생 표 트랜잭션 격리수준 이란 무엇인가? (Transaction isolation level) 각 트랜잭션 사이의 격리된 정도 같은 데이터에 여러 트랜잭션이 겹쳤을 경우, 어떤 상태로 읽을지를 결정한다. 비지니스 모델에 따라서, 어떤 결과가 나오는지에 맞춰서 격리수준을 결정한다. 격리수준에 따라 발생할 수 있는 문제점들은? (부정합 문제 Problems) Dirty read A 트랙잭션이 데이터를 핸들링하고 있는데, B 트랜잭션에서 해당 데이터를 읽을 ..