오블완

주저리주저리/음식점

영통 GTS버거 본점

이 날은 추석연휴 직전 금요일이라 회사에서 일괄 연차 사용을 시킨 날이었다. 간단히 운동을 하고 나와 밥을 먹어야 했는데굳이 집 근처에서 먹기 보다 가보지 않은 동네에서 먹어보기로 결정했다. 그리고 내가 가장 좋아하는 메뉴는 단연 햄버거이기에 평점이 좋았던 이 곳으로 향했다. 정문이 가게를 점심 쯤 방문했는데 역시 평일이라 사람이 한 명도 없었다. 여기는 정말 다른 가게들보다 접근성이 매우 떨어진다는 점이 너무 아쉽다. 일단, 역에서 멀다. 가장 가까운 역은 영통역으로 15~20분 정도는 걸어야 도착한다. 두번째로는 아파트 상가에 위치한 것이다. 세번째로는 지하에 있고, 또 구석이라는 점이다. 오죽하면 내가 이 가게를 방문하면서"이런 곳에 가게가 있다고...? 네이버 지도 이거 제대로 알려준 거 맞아....

주저리주저리/카페

인계동 베드포드 커피

이 카페는 9월에 방문했었는데 지금에서야 글을 쓰고 있다. 근처에 약속이 있어 카페에 앉아 시간을 때우고 싶었는데마침 근처에 적당히 앉을 자리도 있고 분위기도 좋아보이는 카페가 있어 들어가보았다. 메뉴극한의 라떼충으로서 가격은 너무 만족스러웠다. 일단 분위기도 좋은 개인 카페가 스타벅스보다 싸다니! 갑자기 주제를 틀어버리자면 요즘 여러 카페를 돌아다니면서 보니토스 결제 단말기가 엄청 자주 보이는 것 같다. 그리고 이 카페는 "지역화폐" 결제가 된다.(나에게는 매우 중요) 보다시피 빵도 종류가 매우 많았다. 친구들이랑 왔다면 한두개 정도 시켜봤을 것 같은데혼자 오면 커피 한 잔만 시키는 편이라 스킵했다. 커피 근접샷정말 단순하다. 난 이렇게 생긴(머그컵인데 얇은) 컵을 좋아한다. 개인적으로 마음에 드는 컵..

Language/Swift

Swift - 클로저(Closures) - 2

지난 글에 이어 클로저에 대해 더 자세히 들여다보는 시간을 가져보려한다. 여러 클로저 표현기본 클로저 표현func calculate(x: Int, y: Int, method: (Int, Int) -> Int) -> Int { return method(x, y)}이렇게 클로저를 작성하는 것은 이미 저번 글에서 확인했다. 후행 클로저(Trailing Closures)함수 파라미터 마지막으로 전달되는 클로저는 후행 클로저로 함수 외부에 구현할 수 있다. 이는 마치 코틀린 SAM(Single Abstract Method) 변환과 모습이 비슷해보인다.var result: Intresult = calculate(x: 10, y: 10) { (left: Int, right: Int) -> Int in re..

Language/Swift

Swift - 클로저(Closures) - 1

클로저(Closures)는 무엇일까?클로저는 실행 가능한 코드 블럭이다.함수와 달리 이름이 정의되지 않아도 괜찮지만 함수처럼 파라미터 전달 및 리턴 값이 존재할 수 있다.일급 객체로써 변수, 상수 등에 저장이 가능하고 함수의 파라미터에도 전달이 가능하다. 기본 클로저 문법 알아보기{ (parameters) -> returnType in // running code}클로저는 기본적으로 중괄호로 감싸져있다.괄호를 통해 파라미터를 정의하고 "->" 를 이용해 리턴 타입을 명시한다."in" 키워드를 이용해 실행 코드와 분리한다. 간단한 예시로 사용해보기let sum: (Int, Int) -> Int = { (x: Int, y: Int) in return x + y}let result: Int = sum(1..

프로그래머스

[PCCP 기출문제] 1번 / 동영상 재생기 코틀린(Kotlin)

이번 문제는 설명을 쭉 읽어보니 해볼만 하겠다 싶은 문제여서 도전해봤는데약간씩 헤매는 과정을 거쳤다. 문제일단 배열을 제외하고 영상 시간을 정수로, 다시 정수에서 문자열로 변환하는 기능이 필요했다. 그래서 Kotlin에 있는 Extension function으로 만들어보기로 했다. 나머지 로직은 풀이와 같이 보자. 풀이먼저 getTimeInt 함수를 보자.간단히 문자열을 ":" 기준으로 쪼갠 후분 단위는 60을 곱하고 초 단위는 그냥 더해서 정수를 리턴해주는 함수이다. 이번에는 getTimeString 함수이다.특이점은 한자릿수의 경우 앞에 0으로 채워주는 것이 특징이므로String.format 함수를 사용해 포맷을 지정해주고 정수를 60으로 나눈 몫과 나머지를 각각 할당해주었다. 이제 실행되는 함수를 ..

프로그래머스

배열 조각하기 코틀린(Kotlin)

이번 문제는 배열 자르기를 연습하는 시간이 되었다. 물론 실제로 배열 자체를 잘랐다기보다는 리스트로 변형해서 잘랐지만 말이다. 문제홀짝 케이스마다 인덱스를 맞춰 잘라주면 되는 문제이다. 다만, 배열을 리스트로 변환한 뒤 subList를 사용할텐데 인덱스를 어떻게 주어야할지 고민이 필요한 문제이다. 풀이먼저 자르는 횟수는 query배열 길이만큼이기때문에 query에 forEachIndexed를 사용해주었다. subList를 활용하면 문제를 다르게 읽어야 할 필요가 있다. 먼저 짝수일 때는 query값을 포함하여 앞의 값을 남겨야 한다. 여기서 두번째 파라미터에 query배열 값 그대로를 넣게 되면해당 숫자까지 같이 잘리기 때문에 1을 더해주었다. 홀수일 때는 query값을 포함하여 뒤의 값을 남겨야 한다...

주저리주저리/카페

수원 오목천동 도나스데이 본점

도나스데이는 저번에 친구집 근처에서 발견한 잠봉뵈르 맛집이었다. 정말 오랜만에 잠봉뵈르가 먹고 싶기도 했고기본적으로 파는 빵이 다 괜찮다는 평이 자자해서 처음으로 본점에 다녀왔다. 입구보다시피 총 3층짜리 건물이고 옥상에는 테라스 자리가 있다. 일단 저 따뜻한 조명이 되게 편안한 분위기를 만들어주는 듯 했다. 자리부터 잡아앉아서 커피를 즐길 수 있는 좌석도 참 여러가지였는데개인적으로 가장 분위기가 마음에 드는 자리를 찍어보았다.(이래놓고 다른 자리에 앉았지만..) 다시 1층가서 주문하고 오자매우 신난 기분으로 뭘 먹어볼까 고민하러 1층으로 내려갔다.(속으로는 이미 잠봉뵈르를 하나 찜해두었다.) 하지만.. 잠봉뵈르는 없는걸?! 얼떨결에 전에 못봤던 대파크림도넛을 주문해버렸다. 대파크림도 진짜 좋아하기 때문..

프로그래머스

전국 대회 선발 고사 코틀린(Kotlin)

이번 문제는 지나가다 정답률이 낮은 문제를 발견해 풀어보았다. 이전과는 다르게 두 가지 방식으로 문제를 풀어보았는데여러 자료형을 오가면서 풀어볼 수 있어서 나름 좋은 문제였다고 생각한다. 문제풀이 1. map -> list 변환가장 처음 생각한 방식이다. rank배열의 값과 인덱스가 모두 필요한 상황이었기 때문에 list만으로는 풀 수가 없다는 판단을 내렸다. 그래서 key, value로 저장할 수 있는 map을 선택했다. 이 때, rank배열의 각 값으로 key를 해당 index로 value를 지정했다. 그래야 참석 여부에 따라 map에 저장한 key로 정렬할 수 있기 때문이다. 정렬 이후에는 다시 리스트로 변환하여 가장 앞에서부터 3개의 값을 꺼내 값을 만들어 리턴해주었다. 풀이 2. list로 풀기..

프로그래머스

왼쪽 오른쪽 코틀린(Kotlin)

오늘 풀어본 문제는 코틀린에서 forEach를 사용해보고,여기서 continue와 break 역할을 어떻게 대체하면 좋을지 다시 복습해보는 과정이었다. 문제문제는 l과 r이 나오는 시점에서 배열을 좌우로 자르면 되는 문제이다. 다만 위에서 잠시 언급했듯 break와 continue를 사용해야하는 이유가 문제에 있다. 배열을 좌우로 자르는 시점에서는 break가,그렇지 않은 경우에는 continue가 필요하다. 풀이 먼저 forEachIndexed를 사용해 반복문을 대체 해주었고,이 때 기존 Java처럼 continue, break는 사용할 수 없기에run scope 함수로 감싸주었다. 그리고 나서, continue가 필요한 지점은 forEachIndexed를 리턴해주었고break가 필요한 지점은 run ..

Android

Android Fold Device 대응하기

기능이 필요해진 배경이번에 새로운 앱을 준비하며 폴드(플립이 아닌) 디바이스인지 확인해야만 하는 상황이 생겼다. 그렇게 폴드 디바이스인 경우, layout constraints를 조정해 다른 UI를 구성해주기 위함이었다. 다만, 폴드 디바이스를 어떻게 체크할 것인가에 대해 찾아보던 중"2가지 조건을 충족하면 폴드 디바이스다!" 라는 결론을 낼 수 있었다. 1번째 조건WindowInfoTracker를 사용해 폴더블 디바이스인지 확인하는 것이다. developer 사이트 문서에서 확인해보면WindowInfoTracker에서 FoldingFeature가 있는 경우, 폴더블 디바이스라는 것을 알 수 있다. https://developer.android.com/develop/ui/compose/layouts/ad..

BonusTrack02.dev
'오블완' 태그의 글 목록 (2 Page)