[SpringBoot] API 설계하기 - 복습편
·
SpringBoot
먼저 API란 무엇일가?" Application Programming Interface " 의 약자로, 영문을 해석하면, 응용 프로그램 프로그래밍 인터페이스다. 쉽게 말하자면, 서로 다른 소프트웨어가 서로 주고 받을 수 있는 소통 방법이다. 인터페이스 = 어려운 것은 감추고 상호작용을 할 수 있도록 해주는 것을 의미합니다. REST API : Representational State Transfer의 약자로 자원(Resource)의 현재 상태(State)를 나타내는 표현을 주고 받는다라는 의미입니다. HTTP를 기반으로 하는 웹 서비스의 아키텍쳐로, HTTP 메소드와 자원을 이용해서 통신을 주고 받는 방법입니다:) HTTP 메소드는 REST 방식으로 통신할 때 필요한 작업을 표시하는 방법이다. 이 메소..
[AndroidStudio] dataStore state 반환
·
안드로이드 프로그래밍📱
데이터 스토어에서 저장한 최신 상태를 가져오는 코딩 연습을 해보자. 우선 나는 로그인한 여부를 다음 아래와 같은 코드로 구현했다.override val isLoggedIn: Flow = context.authDataStore.data.map { prefs -> prefs[Keys.LOGGED_IN] ?: false} 이렇게 로그인한 여부를 타입을 플로우 타입으로 지정했으며 이를 데이터 스토어에 map을 이용해서 저장했다. 여기서는 값을 가져오기에 map에서 파라미터 prefs를 통해 키 값을 통해 로그인 여부 값을 가져온다. 값이 없는 경우 false로 가져온다. 그러면 이 로그인 여부 최신 상태 값을 메인 뷰모델에서 가져오자. 이를 가져오는 이유는 이전에는 로그인한 상태인데 리프레쉬 토큰 만료(등..
[Kotlin] Producer-Consumer 패턴
·
안드로이드 프로그래밍📱/Kotlin📲 개념
Producer-Consumer 패턴 오늘은 Producer-Consumer 패턴에 대해 정리하고자 한다.간단하게 요약하자면, producer-consumer 패턴은 생산자와 소비자를 나누는 구조이다. producer : 처리 작업을 만듬task queue : producer 처리 작업을 잠시 보관한다.consumer : task 큐에서 작업을 하나씩 꺼내 처리함. 그림으로 살펴보자 그렇다면 디테일하게 개념을 살펴보자:) ProducerTask 끝까지 책임XTask 생성 작동 방식은 1) task 큐에 넣은 뒤, 2) 다음 일을 한다고 생각하면 된다! Task 큐버퍼 : data를 한 공간에서 다른 곳으로 전달할 때 양쪽의 속도 차이 극복하기 위해 data 임시로 모으는 메모리 공간코틀린에서는 코루..
[Android Studio] gradle 공부 1편(app 모듈, dependencies)
·
안드로이드 프로그래밍📱/Projects📲
매쉬업 출석체크 앱 리펙토링을 하면서 한 번 gradle에 대해 공부해보고자 한다😊 먼저 가장 중요한 프로젝트 전체의 버전을 한 곳에 관리하는 파일인 dependencies.gradle에 대해 알아보자.아래의 코드를 참고하자!// dependencies.gradle//일부만 기재함.ext { // Android androidBuildToolsVersion = "8.13.2" minVersion = 24 targetVersion = 36 compileVersion = 36 // kotlin kotlinVersion = "2.1.0" kotlinSerialization = "1.6.0" // compose composeVersion = '1.5...
[Android Studio Mash-Up] gradle version 및 라이브러리 리펙토링 제안서
·
안드로이드 프로그래밍📱/Projects📲
오늘은 앱을 리펙토링하면서 배운 gradle에 대해 정리해보고자 한다. 리펙토링 하는 앱은 매쉬업 출석체크 앱이다:) 23년에 릴리즈 배포한 뒤, 이후 업데이트가 없어서 모듈이 혼재되어 있었다.오늘은 각 모듈의 리펙토링 해야하는 개발문서를 작성해보고자 한다:) 1-1. 공통 문제여러 모듈에서 버전을 하드코딩을 진행하고 있습니다. 이에 dependencies.gradle의 변수와 실제 사용 버전이 불일치하는 경우가 있습니다.app 모듈에서 core:network가 api로 선언한 라이브러리를 (Retrofit, OkHttp)를 중복으로 재선언하고 있습니다.feature:danggn의 accompanist-swiperefresh는 Deprecated되어 Compose 자체 PullToRefresh로 대체가 ..
부산 워케이션 센터 추천! 휴앤워크 서구워케이션 방문기
·
카테고리 없음
안녕하세요!개발자를 꿈꾸는 대학생입니다.​​제가 이번에 휴앤워크 서구워케이션 센터에 다녀왔어요.​​요즘은 노트북 하나만 있으면어디서든 일할 수 있는 시대잖아요?하지만 집이나 카페는집중도가 떨어질 때가 많은데,이곳은 정말 '일할 맛 나는' 공간이었답니다. 이렇게 예쁜 건물로 되어있어요! 셔틀 버스도 운영하고 있습니다~! 덕분에 잘 다녀왔습니다:) 많은 작업을 하고 올 수 있었꼬, 부산 관광도 할 수 있어서 힐링이 되는 시간이었어요😊 장소는 위를 참고해주세요:)
[AndroidStudio] 안드로이드 런타임 구조 이해
·
안드로이드 프로그래밍📱/Kotlin📲 개념
안드로이드 💻 빌드 과정은 아래와 같다.OS └─ JDK └─ JVM └─ Gradle 실행 └─ Kotlin compiler 실행 └─ Kotlin → .class 생성 └─ D8 → .dex 생성 └─ APK 생성 1. 코틀린은 사람이 쓰는 코드이다. 2. .class는 JVM이 이해하는 언어로 1차 번역을 한다.(휴대폰은 아직 이해하지 못한다.)3. .dex는 안드로이드가 이해하는 언어로 2차 번역을 한다.(휴대폰 준비 완료)4. APK : 설치 파일 (.dex + 이미지 + 설정파일) 압축한 것. 그렇다면 JVM이란?바이트 코드를 실행..
[Android Studio- jetpack Compose] 개념 정리 3일차
·
안드로이드 프로그래밍📱/Kotlin📲 개념
이어서 안드로이드 스튜디오 개념에 대해 다시 하나씩 정리해보고자 한다 🔥 아주아주 간단한 개념이지만, 막상 오랜만에 공부하니 말로 대답이 어려워서 3일차 초간단 개념 퀴즈 5개를 같이 풀어보자 Chapter3. PART 1 — Compose + Coroutine 연결 Q1. 왜 API 호출은 Composable이 아니라 ViewModel에서 해야 하는가? (비동기 관점 포함) A1 : 이유는 Composable은 상태를 받아서 화면을 그린다.@Composable //화면 구독, 상태 바뀌면 재구성, 화면 다시 그림fun ProfileScreen(uiState: ProfileUiState) { Text(text = uiState.name)}컴포즈는 상태가 바뀌면 컴포저블을 다시 실행해. 그러면 재구..
[SpringBoot] 설치
·
SpringBoot
항상 노드로 프로젝트를 해왔기에, springBoot는 어떻게 작동하는지 궁금했다.그래서 오늘은 스프링 부트를 설치부터 같이 해보자! 대학생은 intellj 혜택은 학생이라면 놓치지 말기를. https://www.jetbrains.com/idea/download/?section=windows Download IntelliJ IDEADownload the latest version of IntelliJ IDEA, the leading IDE for professional development in Java and Kotlin. Available for Windows, macOS, and Linux.www.jetbrains.com 나는 이미 대학생 인증을 datagrip건으로 했던 상황이라 바로 설치했다. ..
[Android Studio- jetpack Compose] 개념 정리 2일차
·
안드로이드 프로그래밍📱/Kotlin📲 개념
오늘은 안드로이드 스튜디오 개념에 대해 다시 하나씩 정리해보고자 한다 🔥아주아주 간단한 개념이지만, 막상 오랜만에 공부하니 말로 대답이 어려워서 2일차 초간단 개념 퀴즈 10개를 같이 풀어보자 2일 퀴즈 및 정리Chapter1. PART 1 — 비동기 기본 개념 Q1. 동기(Synchronous)와 비동기(Asynchronous)의 차이를 설명하시오.UI 스레드와 연결하여 설명하시오. A1 : 정확하게 개념부터 잡아보자. 동기(Synchronous)→ 현재 작업이 끝날 때까지 다음 작업을 실행하지 않는다.→ 같은 스레드에서 차례대로 실행된다. 비동기(Asynchronous)→ 오래 걸리는 작업을 기다리지 않고 다음 코드를 실행한다.→ UI 스레드를 차단하지 않는다. 예시로 보면, Android에서 U..