📖 개발 공부
-
[HTTP] HTTP 메서드📖 개발 공부 2023. 8. 9. 00:35
인프런의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의를 보면서 정리한 내용입니다. URI의 가장 중요한 설계 기준 → 리소스 식별 API URI 고민 리소스의 의미? 회원을 등록 하고 수정 하는 게 리소스가 아니다. 회원 이라는 개념 자체가 바로 리소스다. 즉, 회원에 대한 동작은 모두 배제하고, 회원이라는 리소스만 식별하면 된다. → 회원 리소스를 URI에 매핑 [참고] 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장(member→members) 리소스와 행위를 분리 가장 중요한 것은 리소스를 식별하는 것 리소스: 회원 행위: 조회, 등록, 삭제, 변경 → HTTP 메서드 HTTP 메서드 종류 (주요 메서드) GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: ..
-
[Redis] Redis의 Data Type 공부 (Strings, Lists, Sets, Hashes, Sorted Sets, Bitmaps, HyperLogLog)📖 개발 공부/redis 2023. 8. 6. 16:47
목차 1. Strings 타입 2. Lists 타입 3. Sets 타입 4. Hashes 타입 5. Sorted Sets 타입 6. Bitmaps 타입 7. HyperLogLog 타입 Strings 타입 가장 기본적인 데이터 타입이다. 바이트 배열로 저장된다. (binary-safe: 모든 문자를 표현할 수 있다.) 바이너리로 변환할 수 있는 모든 데이터를 저장 가능하다. (ex) JPG과 같은 파일 등) 최대 크기: 512MB Redis 하나의 아이템의 최대 value 크기는(key도) 512MB이다. 즉, 이론적으로는 512MB 키에 512MB 데이터를 만들 수 있다. Strings 주요 명령어 명령어 기능 예제 SET 특정 키의 문자열 값을 저장한다. SET say hello GET 특정 키의 문자..
-
[Flutter] Flutter는 어떻게 동작하는가?📖 개발 공부/flutter 2023. 8. 5. 11:42
Flutter Flutter는 Google에서 개발한 오픈 소스 UI 소프트웨어 개발 키트다. 이는 구글에서 만들어졌으며 본격적인 출시는 2017년 5월부터 시작되었는데, 무료 오픈 소스이기에 누구나 편리하게 접근이 가능한 모바일 UI 프레임워크이다. Flutter architectural overview A high-level overview of the architecture of Flutter, including the core principles and concepts that form its design. docs.flutter.dev flutter 애플리케이션이 어떻게 동작하는지 거시적인 관점에서 보자 👀 네이티브 방식이 동작하는 원리 swift로 ios를, 혹은 java로 android를 만..
-
[Redis] Redis 소개와 특징📖 개발 공부/redis 2023. 8. 4. 21:50
패스트캠퍼스의 "백엔드 개발자를 위한 한 번에 끝내는 대용량 데이터 & 트래픽 처리 초격차 패키지 Online." 강의와 그외에 추가로 정리한 내용입니다. 목차 1. Redis의 정의 2. In-memoryDB로서의 Redis 3. Key-value store로서의 Redis 4. Redis 사용 사례 Redis의 정의 Remote Dictionary Server (원격 Dictionary 방식으로 데이터를 저장하는 서버) Redis는 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어이다. Storage: 데이터 저장소(데이터 관점) 프로그램이 종료되더라도 데이터가 남아있게 된다. Database: 전통적은 DBMS의 역할을 수행 (영속성 관점) 영속성: 데이터 저장해두고 유실하지 않도록 한다. 데이..
-
RPC, gRPC, stub📖 개발 공부 2023. 8. 3. 22:23
RPC RPC는 Remote Procedure Call의 약자로 분산 네트워크 환경에서 조금 더 직관적인 프로그래밍을 가능하게 해주기 위해 등장하였다. Server-Client Model에서 상세한 정보를 감추고 개발자는 각 로직에 집중할 수 있게, Client와 Server는 메소드를 호출하는 것처럼 개발하면 된다. caller/callee 개발자가 필요한 비즈니스 로직을 생성하고 정의된 IDL(interface definition language)로 작성하여 stub 을 호출한다. Stub RPC에서 클라이언트와 서버 간에 통신을 하기 위해 Stub이 사용된다. Stub compiler 가 IDL 파일을 읽어 원하는 language 로 생성하고 파라미터를 변환(Marshalling)/역변환(Marsh..
-
[Kotlin] @Synchronized 어노테이션 동작 방식📖 개발 공부/kotlin 2023. 8. 3. 00:50
한줄요약: @Synchronized 어노테이션은 AOP와 관련된 게 아니라 synchronized JVM 메서드임을 알려주는 역할을 한다! 동시성 이슈 강의 스터디를 할 때 나는 코틀린으로 변환해서 코드를 작성하였다. 재고시스템으로 알아보는 동시성이슈 해결방법 인프런 재고시스템으로 알아보는 동시성이슈 해결방법 강의를 보면서 정리한 내용입니다. 재고시스템으로 알아보는 동시성이슈 해결방법 - 인프런 | 강의 동시성 이슈란 무엇인지 알아보고 처 ayoung0073.tistory.com 이때 synchronized 키워드를 쓸 수 없어 같은 동작을 하는 @Synchronized 어노테이션을 붙였다. 그리고 스터디 발표가 당청되어 내가 작성한 코드를 보며 발표를 하던 중..! 스터디를 같이 하는 팀원이 물었다. ..
-
재고시스템으로 알아보는 동시성이슈 해결방법📖 개발 공부 2023. 8. 2. 01:17
인프런 재고시스템으로 알아보는 동시성이슈 해결방법 강의를 보면서 정리한 내용입니다. 재고시스템으로 알아보는 동시성이슈 해결방법 - 인프런 | 강의 동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다., 동시성 이슈 처리도 자신있게! 간단한 재고 시스템으로 차근차근 배워보세요. 백엔드 개발자라면 꼭 알아야 할 동시성 이슈 www.inflearn.com 실습한 레포지토리 👉 https://github.com/ayoung0073/stock 코틀린으로 작성 mysql, redis, mongo 세 커밋으로 나누어서 코드 작성 동시성 문제 동시성 문제란 동일한 자원에 대해 여러 스레드가 동시에 접근 하면서 발생하는 문제다. 재고시스템에서 재고 감소 로직에서 동시성 문제가 발생할 수 있다. Synchroni..
-
[Kotlin] toBoolean(), toBooleanStrict()📖 개발 공부/kotlin 2023. 7. 26. 22:35
한줄 요약 문자열이 "true", "false"인 경우에만 Boolean 타입을 반환하고, 나머지는 예외 던지는 걸 기대한다면, toBoolean()이 아니라 toBooleanStrict() 을 사용하자. 코틀린에서 문자열(String)은 타입 변환을 해주는 확장 함수를 제공한다. toByte() toShort() toInt() toLong() toFloat() toDouble() toBoolean() 테스트 코드를 짜다가 생각치 못한 부분에서 버그를 발견했다. “random”.toBoolean() 은 어떤 값을 반환할거라 예상하는가? 한번 생각해보자. 나는 당연히 IllegalArgumentException 예외가 던져질 줄 알았다. 하지만 예상과 다르게, false 를 반환하는 것을 알 수 있다. f..