분류 전체보기

    Python Selenium Webdriver Chrome Option 관련 오류

    Python Selenium Webdriver Chrome Option 관련 오류

    ChromeDriver를 활용해 크롤링을 구현해놨는데 오늘 처음보는 에러가 나왔다. 내용을 읽어보니 chrome_options 라는 argument 가 안맞는 듯 해 혹시하고 Selenium 공식 사이트를 확인해 보았다. get_upcoming_items... __init__() got an unexpected keyword argument 'chrome_options' finally... Traceback (most recent call last): File "/home/runner/work/ShoesPlease/ShoesPlease/parser/get_upcoming_items.py", line 23, in get_upcoming_items driver = webdriver.Chrome('chrome..

    MPNowPlayingInfoCenter 제어센터 초기세팅 및 갱신하는 방법

    MPNowPlayingInfoCenter 제어센터 초기세팅 및 갱신하는 방법

    뮤직플레이어앱을 개발하면서 제어센터를 사용하기 위해 코드를 짰지만 webview에서 동영상을 재생하는 방식인 우리 앱에선 동작하지 않아 버리기엔 아까워 코드를 공유하고자 남깁니다. // 제어센터 초기세팅 import MediaPlayer func MPNowPlayingInfoCenterSetting() { // 제어 센터 이벤트 수신 시작 // Info.plist에 // UIBackgroundModes : audio 또는 // Required background modes : App plays audio or streams audio/video using AirPlay 해주어야 합니다. UIApplication.shared.beginReceivingRemoteControlEvents() let cente..

    UITableView 로 가사 기능(트래킹, 하이라이팅, 탐색) 개발 기록

    UITableView 로 가사 기능(트래킹, 하이라이팅, 탐색) 개발 기록

    왁타버스 뮤직 앱을 개발하면서 가사 기능을 구현했던 내용을 기록하기 위해 작성한 글입니다. 요구사항 및 결과 화면 1. 가사 트래킹 기능: 시간이 흐르면 재생중인 가사가 가운데로 스크롤되어야 함 2. 가사 하이라이팅 기능: 재생중인 가사를 하이라이팅해야 함 3. 스크롤 가사 탐색 기능 : 가사를 스크롤하면 멈춘 위치의 가사를 재생 기능 구현 트래킹 기능 1. JSON 으로 받아온 가사를 가사 딕셔너리로 변환 가사를 요청하면 아래와 같은 형식의 json이 날아옵니다. [{"identifier":"1","start":17.17,"end":19.9,"text":"기억나 우리 처음 만난 날","styles":""}, {"identifier":"2","start":19.9,"end":23.77,"text":"내게..

    Tuist Project 'Could not build Objective-C module' 오류 해결법

    Tuist Project 'Could not build Objective-C module' 오류 해결법

    Tuist 로 프로젝트를 진행하다가 Could not build Objective-C module 'RXSwift' 라는 오류메시지를 마주해 해결한 방법을 공유합니다. 1. XCode Settings -> Locations -> Derived Data 로 이동 2. XCode 를 종료합니다. 3. Derived Data 폴더에 많은 폴더들이 있을텐데, 문제가 되는 프로젝트명이 붙은 폴더를 전부 삭제합니다. (Ex: TestProject-dqiwebnaks) 4. tuist clean, tuist generate 를 순서대로 해줍니다. 5. xcworkspace를 열어 재빌드합니다. 위와같이해서 문제를 해결했습니다 !

    [백준] BOJ-15649 N과 M (1)

    [백준] BOJ-15649 N과 M (1)

    문제 N과 M을 입력받아 nPm 의 순열을 구하는 문제였다. 풀이 import Foundation let nm = readLine()!.split(separator: " ").map { Int($0)! } let n = nm.first! let m = nm.last! let nums = Array(1...n) // [1, 2, ..., n] /// nPr func permutation(n elements: [Int], r: Int) -> [[Int]] { var result = [[Int]]() var visited = [Bool](repeating: false, count: n) func permu(_ temp: [Int]) { if temp.count == r { result.append(temp) ..

    [SwiftUI] 사라질 때 transition이 적용안되는 경우 (SwiftUI removal transition not animated)

    [SwiftUI] 사라질 때 transition이 적용안되는 경우 (SwiftUI removal transition not animated)

    문제 Color 로 덮여있는 화면을 탭하면 Lottie 뷰가 아래에서 나타나고, Lottie 뷰를 다시 탭하면 아래로 사라지도록 했다. 뷰가 나타나는 건 잘되는데, 사라질 때 왜 애니메이션이 안먹을까? 원인 및 해결 ZStack { Color.green.ignoresSafeArea() if isAnimating { CustomLottieView() .transition(.move(edge: .bottom)) } } // @State isAnimating, onTapGesture 는 생략 위 코드처럼 구성이 되어있는데 .ignoresSafeArea() 를 풀어보면 removal transition 시, CustomLottieView 의 ZIndex 가 0으로 변경되면서 Color 보다 아래로 이동하여 애니..

    [백준] BOJ-14889 스타트와 링크

    [백준] BOJ-14889 스타트와 링크

    문제 문제 풀이 알고리즘 스터디 1주차 문제로, DFS, 백트래킹 알고리즘으로 접근하며 문제풀이를 시작했다. 백트래킹은 "DFS를 기반으로 하며, 어느 정도의 Depth 에 도달하면 탐색을 중단 하는 알고리즘" 정도로 이해하고 접근했다. n이 무조건 짝수로 제공되고, 절반 씩 팀을 나누기 때문에 dfs로 순차 탐색을 진행하다가 n / 2 일 경우 탐색을 중단하고 팀원을 구성하도록 했다. 두 팀간의 능력치 차이가 가장 적은 경우의 능력치 차이를 출력하는 문제이기에 result 변수의 초기값을 Int.max 로 설정해둔 후, min() 과 abs() 함수를 사용해 두 팀 간의 능력치 차이를 구하고 result 와 비교해 더 적은 값으로 업데이트 하도록 했다. import Foundation let n = I..

    [Git] gitignore에 등록해도 DS_Store가 자꾸 Stage에 올라가요

    [Git] gitignore에 등록해도 DS_Store가 자꾸 Stage에 올라가요

    DS_Store 파일은? DS_STORE 파일이란 Desktop Services Store의 약자로, 애플에서 정의한 파일 포맷이다. 애플의 맥 OS X 시스템이 finder로 폴더에 접근할 때 자동으로 생기는 파일로써, 해당 폴더에 대한 메타데이터를 저장하는 파일이다. 윈도우의 thumb.db 파일과 비슷하다. 분석해보면 해당 디렉토리 크기, 아이콘의 위치, 폴더의 배경에 대한 정보들을 얻을 수 있다. 맥 OS 환경에서만 생성 및 사용되지만, 파일을 공유하는 과정에서 이 파일도 같이 공유되는 경우가 있다. DS_store 파일은 프로젝트와 관련없는 파일이며, git status를 사용했을 때 발견되는 파일이니, github로 넘기지말고 삭제해도 된다. 문제 .gitignore 에 *.DS_Store 를..

    CocoaPods pod install 시 minimum deployment target 경고가 뜰 때

    CocoaPods pod install 시 minimum deployment target 경고가 뜰 때

    프로젝트를 Clone 후 의존성 설치를 위해 pod install 을 했다. 분명 예전에도 pod install 후 워닝이 떠서 minimum deployment target 를 최소 지원 버전과 맞춰 놨는데, pod install 을 하면 다시 초기화되는 경우가 발생했다. 새로운 팀원이 들어오거나 프로젝트 파일을 새로 여는 경우 매번 minimum deployment target 을 설정해주는건 번거로운 일이다. 그래서 이참에 자동화 하는 방법을 찾아서 적용해두었다.. # 이런 저런 초기 설정... target 'YourApp' do # 당신의 앱의 이런저런 외부 의존성... # ex) pod 'KakaoSDKTalk' # ex) pod 'Alamofire' end post_install do |ins..