전체 글 230

퇴사..

원하던 퇴사는 아니였지만회사가 힘들어지면서 회사 대부분의 인원이 퇴사를 하게 됐다.애정을 가지고 개발하던 서비스여서 마음이 아프다아직도 실감이 잘나지 않는다순식간에 회사 밖으로 내쳐지니 갑작스럽게 취준생이 됐다.여유를 가지고 지금까지 쉬어보지도 못했으니 괜찮다고 생각해도내 성격상 일을 안하면 오히려 찝찝한 기분이 든다.다시 정신차리고 뭐든 해보자 파이팅

잡담 2024.06.25

[Kotlin/Swift 문법 비교] String 출력과 변수와 Optional / Nullable 처리

대부분의 프로그래밍 언어에 통용되는 기본적인 내용까지 적지는 않을것이고안드로이드 개발에 쓰이는 코틀린과 다르게 사용되는 문법들에 대해서 정리를 하려고한다. 첫번째는 String 출력과 변수와 Optional / Nullable 처리대해서 적어보려고 한다. String - String 출력 Swift print("ios도 개발하고싶어요!") Kotlinprintln("Hello, world!") 키워드를 잘보면 눈치를 챌 수 있는데 Swift는 저렇게 적어주면 자동으로 줄바꿈이 포함된다. - String 안에 변수 Swiftlet real = "진짜 슬프다"let realValue = 3000let data = "아이폰이 없네 ㅠ \(real) 얼마나 슬프냐면 \(realValue)만큼 슬퍼" Kotlin..

IOS/Swift 2024.05.11

안드로이드 키보드 높이 구하기

키보드가 올라왔을때 키보드 위로 특정 레이아웃을 올리고 싶을때가 있다.매니페스트 파일이나 코드상으로 넣어도 화면 구조상 어려워서 원하는대로 동작하지 않을때가 있는데  아래와 같은 방법으로 해결 할 수 있다. 화면의 적당한 곳에 아래 코드를 적어준다. 이 코드를 Fragment 에서 사용했을때 기준이다.ViewCompat.setOnApplyWindowInsetsListener(requireActivity().window.decorView.rootView) { _, insets -> val sysBarInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars()) val imeHeight = insets.getInsets(WindowInsetsCo..

Android 2024.04.29

Fast api 에서 playwright 을 사용할때 NotImplementedError 에러

최근 개발하고 있는 취향 링크 수집 프로젝트에서 LangChain 과 Open ai api 를 사용해서 키워드 추출 기능을 백엔드로 추가 할 계획으로백엔드를 개발한다고 Fast api 를 써봤는데 링크로 웹 크롤링이 필요해서 playwright  를 쓰는 도중에  계속해서 NotImplementedError  에러가 발생했다.서버를 실행할때 쓰는 uvicorn 과 연관된 에러인거 같은데 .. 사실 정확한 이유는 모르겠고 실행할때 항상  uvicorn main:app --reload 로 실행했었는데 uvicorn main:app 이렇게 reload 를 빼고 실행하니까 문제가 발생하지 않았다. 혹시나 이유를 아신다면.. 알려주시면 감사하겠습니다!

BackEnd 2024.04.28

컴포즈의 Side-Effect 형제들에 대해서 알아보자 - 2

2024.04.21 - [Android/Android Compose] - 컴포즈의 Side-Effect 형제들에 대해서 알아보자 - 1 컴포즈의 Side-Effect 형제들에 대해서 알아보자 - 1컴포즈에는 side effect 라는 개념이 존재한다. 단어의 원래 뜻은 부작용이라는 뜻인데 왜 이런 명칭을 붙였는지 의아하긴 했는데 찾아보니 composable 은 단방향으로 state 를 전달하는게 기본인데 전choi-dev.tistory.com이전 글에 이어서 알아보자. 이번에는 DisposableEffect SideEffect 이렇게 알아볼 예정이다. DisposableEffect  는 앞글에서 봤던 LaunchedEffect 와 비슷하지만 취소됐을때 onDispose 가 호출된다.취소될때의 동작을 추가..

컴포즈의 Side-Effect 형제들에 대해서 알아보자 - 1

컴포즈에는 side effect 라는 개념이 존재한다. 단어의 원래 뜻은 부작용이라는 뜻인데 왜 이런 명칭을 붙였는지 의아하긴 했는데 찾아보니 composable 은 단방향으로 state 를 전달하는게 기본인데 전달되는 방향 반대로 상태를 변경해야하는 상황도 지원하기 위해 side effect 라는 개념을 도입했기 때문에 이런 이름이 붙었다고 한다. 요약을 해보자면 side effect 는 Composable 에서 자신이 아닌 외부의 상태에 영향을 발생시키는 것이겠다. 보통 flow 를 사용해서 특정 이벤트를 collect 하면 외부의 상태를 변경하는 경우가 일반적인 예라고 할 수 있겠다. Side Effect 를 지원하기 위한 다양한 API LaunchedEffect rememberCoroutineSc..

Jetpack Compose CompositionLocal 에 대해 알아봅시다

컴포즈를 사용하다보면 종종 CompositionLocal 을 마주치곤 한다. 테마를 커스텀하고 싶을때 사용하곤 했는데 CompositionLocal 은 어떻게 동작하길래 테마 커스텀에서 사용됐는지 개념을 알아보자. CompositionLocal 이 필요한 이유 컴포저블 함수들은 트리형태로 구성된다. 그래서 상태의 관리를 편하게 하기 위해서 보통 상태 호이스팅이라는 개념으로 상위 노드에서 관리하고 하위 노드로 전파한다. 그런데 극단적으로 트리의 깊이가 100개면 어떨까. 이 상태를 아래까지 다 전파하는건 쉽지 않을거다. 이때 CompositionLocal을 유용하게 써먹을 수 있는데 너무 대충 그렸지만 아래 같은 느낌으로 컴포지션로컬의 영역에 있는 컴포저블끼리는 하위에서 상위 노드의 상태에 접근하도록 제공..

DeepDive Android

새로 카테고리를 만들었다. 안드로이드 개발자랍시고 습관적으로 사용하는 것들이 어떻게 내부적으로 동작하는지 모르고 사용하던 나의 무지함을 조금이라도 덜어내기 위해 처음부터 공부한다는 마음으로 내부 코드들을 깊게 들여다보고 이해하기 위해 만들어진 카테고리다. 잘못 이해하는것도 있고 완벽하게 이해하지 못하는 것도 있겠지만 원리를 이해하려는 노력들이 적힐 예정이다.