전체 카테고리 232

[Swift] DateFormatter 년도차이 YYYY vs yyyy

개발을 하다가 이슈가 생겼는데 년도를 비교하는 로직이고 날짜를 표시하는 기능이었어요 무심코 지나쳐서 흔하게(?) 할 수 있는 실수라고 생각되네요 테스트로 2020년에 개발했던 거라 당연하게 2020년 날짜 데이터도 잘 받았고 2021년 데이터도 했을 때 잘 됐었는데 ... 2021년이 되었어요!! 게시글 작성 시점은 1/2일이구요.. 응?? 2021년 12월 31일... 미래에서 온 게시글이니...? (원래 2020년 12월 31일 게시글) 분명 이 포맷으로 잘 되는 걸 확인했고 그전까지 date와 calendar로그를 찍어서 확인했을 때 년도가 알맞게 잘 나왔는데... 알고보니 YYYY가 문제더라구요 그냥 년도만 나타내는 포맷인줄알고... 아무생각없이 쓰고있어서 몰랐는데 하필 이때 yyyy가 아니였네요..

iyOmSd/Title: Swift 2021.01.02

[Iterm] Iterm 터미널 커스텀

터미널을 이쁘게 커스텀 해볼거에요 이 과정을 하기전에 https://github.com/ohmyzsh/ohmyzsh 에서 omyzsh를 먼저 설치해야해요 sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" https://github.com/ohmyzsh/ohmyzsh/wiki/themes 를 찾아봐서 다른 테마를 정해도 돼요 전 인기가좋은 agnoster를 사용했기때문에 이테마를 기준으로 설명을하구요 터미널에서 vi편집기로 ~/.zshrc위치에 있는 파일을 열어주세요 전 기본 루트가 ~여서 바로 .zshrc로 접근했어요 vi .zshrc vi를 사용하실줄 모르신다면 현재창에..

끄적 끄적 2021.01.02

[이미지 확장자] Vector? Raster? PNG, JPEG 뭐가 다를까?

코딩을 하다보면 이미지를 사용할 일도 있고 이미지 포스팅 피피티 문서.. 등 이미지를 사용할 일 이 많지만 어떤 확장자를 써야하는지 고민하는 사람들은 적을거에요 대부분 고민 한다고하면 투명도를 지원하고 안하고의 차이정도인 png를 사용하느냐 마느냐정도가 있겠네요 뭐가다른지 궁금하게되서 정리해보려고해요 이미지는 크게 Raster와 Vector타입으로 나뉜다고해요 각 타입에 해당하는 대표적인 확장자로 png 비트맵(Raster) - 고정된크기 늘어나면 문제생김(깨짐현상) pdf 백터 - 늘어남에 따라서 문제없음(잘늘어나고 선명) Raster JPG, GIF, PNG, TIFF, RAW, PSD 파일이 속함 픽셀베이스 그래픽으로 사진이나 웹그래픽에 사용 픽셀이라고 불리는 점들이 그리드형태로 모여서 하나의 그림..

끄적 끄적 2021.01.01

[Swift] 커스텀 연산자 만들기 (Custom Operator)

+ 와 - 같은 연산자들을 직접 만들어 사용해 볼 거에요 infix: 사이에 연산자가 있는경우 ( 3 + 3 ) prefix: 앞에 연산자가 있는경우 ( ++3 ) postfix: 뒤에 연산자가 있는경우 ( 3++ ) 이 3가지중 하나를 골라서 먼저 정의를 해줘야해요 postfix operator ==== 그리고 연산자에서 중요한게 우선순위가 있어요 +와 *가 같이있다면 *부터 계산되는 그런 우선순위와 (서로다른 우선순위간의 계산) 같은순위의 연산자 -, + 사이에는 어느것 부터 계산되어야하는지도 중요하죠 (같은 우선순위간의 계산) precedencegroup 이라는 키워드를 이용해서 우선순위를 만들어 줄 수 있어요 옵션에는 associativity: 우선순위가 같은 연산자들의 처리 방식으로 left/r..

iyOmSd/Title: Swift 2020.12.31

[Git] Gitmoji 커밋을 알아보기쉽고 이쁘게

밋밋한 커밋으로만 사용했다면 엄청많은 커밋내역을 볼 때 눈이아프고 하나하나 읽어봐야 하는 노력이 필요할거에요 하지만 이모지를 사용해서 컨벤션을 맞추서 사용한다면 그림만보고도 이게 어떤 카테고리인지를 쉽게 판별할 수 있죠 물론 임의의 이모지를 사용해도 되지만 이러한 컨벤션을 정리해둔 사이트가 있어요 gitmoji.dev gitmoji An emoji guide for your commit messages. gitmoji.dev 홈페이지에서 보면서 가져다 써도 되지만 커맨드라인에서 바로 사용할 수 있는 프로그램을 사용하면 더 편리하죠 github.com/carloscuesta/gitmoji-cli 설치는 정말 간단해서 그대로 따라하면 되구요 저는 npm설치가 잘안돼서 brew를 이용한 설치를 했어요 brew..

끄적 끄적/Git 2020.12.27

[Swift] AVFoundation 카메라 만들어보기(기초)

UIImagePickerController를 이용해서 아주 손쉽게 카메라를 띄우고 사진을 가져오는 방법이 있지만 더 많은 컨트롤을 할 수 있는 AVFoundation을 다뤄서 만들어 보도록할거에여 AVFoundation으로 할 수 있는 것은 카메라, 비디오, 오디오, 녹음, 미디어에셋을 커스텀 하게 만들 수 있어요 간단한 원리라고하면 Device에서 어느 장치를 쓸건지 input을 만들어서 동작하는 Session에 넣어주고 넣은 input이 있으면 그에따른 output도 있겠죠? output도 설정해서 Session에 달아주면 되는식이에요 요약하자면 input, output을 session에 설정한다! 코드로 보면서 이해해볼까요 (간단해서 볼것도 없네요.. ㅎ) class TestCamera: UIVie..

iyOmSd/Title: Swift 2020.12.24

[Swift] Socket 라이브러리 비교 CocoaAsyncSocket vs Socket.IO

대표적인 소켓 라이브러리에요 (아마도..?) 소켓을 사용할 때 원하는 기능을 고려해서 선택해서 쓰면 될것 같아요 소켓이란.. 간단하게 HTTP통신은 클라이언트가 요청을 보내는 경우에만 응답하는 단방향 통신이고 실시간연결이아니라 필요할 때만 통신해서 데이터를 가져오는 방식이죠 소켓은 특정 Port를 통해서 연결을 유지하고 실시간으로 양방향 통신을 할 수 있는 방식이에요 실시간통신에 유리하죠 일반적인 소켓은 TCP/IP, UDP 프로토콜을 이용하지만 웹소켓은 HTTP Layer에서 작동하는 소켓이에요 기본적으로 HTTP(80), HTTPS(443)포트를 사용하구요 웹소켓 프로토콜은 WS, WSS가 있어요 CocoaAsyncSocket Objective-C로 구성되어 있고 GCD기반 비동기 소켓 라이브러리에요..

iyOmSd/Title: Swift 2020.12.23

[Swift Algorithm] 프로그래머스 42861 섬 연결하기

programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 문제를 간단하게 요약하면 각 노드를 모두 연결 할 수 있는 간선의 최소 가중치를 구해라 라는 문제에요 방문하는 문제와 결이 달라요 되게 어려운 문제지만 크루스칼 알고리즘과 Union Find 알고리즘 개념을 알고나면 접근하기 쉬워지는 문제에요 Union Find 란 여러개의 노드가 존재 할 때 연결된 노드들을 같은 집합 구성원으로 묶어주는 알고리즘이에요 [1,2], [2,3], [3,4], [5,6] 이런 집합이 있다면 위와 같이 그려 볼 수 있겠죠? 2번과 4번이 같은 집..

[Figma] Variants 컴포넌트 그룹 만들기

Variants가 뭐나면.. 하단탭으로 예를 들자면 이런 탭아이콘을 만드려면 아이콘 2개를 가져와서 각각 컴포넌트에 넣어줘서 만들어야하지만 Variants를 사용하면 하나의 컴포넌트로 해결 할 수 있어요 속성을 컨트롤해서 구분할 수 있어요 네이밍이 중요하구요 왜 중요한지는 아래에 보면있어요 컴포넌트의 속성(on/off)를 줘서 변경 할 수 있어요 먼저 컴포넌트의 개념을 알고가야 할 것 같아요 2번째에있는 4조각난 다이아몬드표시를 누르면 지정이 되구요 보라색이뜨면서 저 모양이 뜰거에요(조각난 다이아몬드) 이렇게말이죠 그 다음 복사를 해보세요 (맥북)옵션키를 누르고 드래그 혹은 커맨드+C ~ V 커맨드+D 등 알고있는 복사 단축키구요 ㅎㅎ 보면 새로 복사한 컴포넌트는 텅빈 다이아몬드가 그려져있죠?? 이게 자..

디자인/Figma 2020.12.12

[Figma] 화면간 이동 프로토타입 만들기

이번주제는 간단한 주제에요 앱에서 버튼을 누르면 다음화면으로 가는 그러한 동작을 시뮬레이션 할 수 있는 기능이에요 아트보드가 우선 2개이상이 필요하겠죠?? 이동시킬 화면과 이동화면! 오토레이아웃을 누르면 오른쪽화면으로 이동되도록 해볼게요 왼쪽화면의 오토레이아웃을 클릭하고 디자인창이아니라 프로토타입창 을 클릭을 하면 사각형에 ㅇ 하나가 나타날거에요 드래그해서 이렇게 끌어다 놓으면 해당 컴포넌트를 어떻게 할때 동작하고 어떤 인터렉션이 동작할건지 설정할 수 있어요 설정했다면 오른쪽위에서 플레이 버튼을 눌러서 확인하고 여러 화면이 있다면 시작 지점을 설정할 수 있어요 오른쪽 프로토타입창에서 혹은 아트보드에서 왼쪽위에 재생표시를 드래그해서 지정할 수 있어요

디자인/Figma 2020.12.12