전체 글 260

Git ignore file

이미 git에 의해 tracking 된 다음 .gitignore에 추가되면 계속해서 tracking하고 있다. https://medium.com/@kwoncharles/git-gitignore-변경-반영하기-3f0559947c2b [git] .gitignore 변경 반영하기 왜 지워지지 않는거야! medium.com 이거 보고 블로그 정리해라 $ git rm -r --cached . // cache에 기록된 tracking 중인 파일리스트 삭제 $ git add . $ git commit -m 'remove ignored file' $ git push {remote} {branch} 결국 tracking을 직접 제거 해야한다. 프로젝트 셋팅일때 미리미리 해두자

3. 유용한 자료

https://hyeo-noo.tistory.com/184 [Mac] GitHub push token 오류 해결 Github 오류 7.29일 새벽 갑자기 git push가 안 되는 현상을 겪었다. 오류의 첫 줄이 무슨 말이냐면 Password 인증방식이 일시적으로 brownout(shutdown?)되었다. Password 대신에 personal access token을 사용.. hyeo-noo.tistory.com https://velog.io/@quokka/Oh-no-an-error-occurred.-cocoapods-install-실패할때 [!] Oh no, an error occurred. cocoapods install 실패할때 pod install을 해줬는데 밑과같은 에러가 나면서 인스톨이 안되..

2. How to install Homebrew?

MacOS용 패키지 관리자 Homebrew를 설치하자 맥에서 개발을 하게되면 결국엔 homebrew를 설치하게 된다. 그만큼 강력한 놈이다. https://brew.sh/ Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 위 링크에서 Command Line을 복사해서 Terminal에 붙여넣기 + Enter을 진행하다. 맥북 비밀번호를 삽입하고 Enter를 클릭한다 끝인줄 알았는데 PATH가 문제가 있어보였고, 아래 Command Line으로 Version을 검색하니 brew를 찾을 수 없단다. $ brew --version Warning: /opt/homebrew/bin is not in your PATH. 말 그대로 아직 PATH에..

1. What is Git?

VCS(Version Control System) Git은 VCS중 하나이다. 코드 뿐 아니라 텍스트, 노트, 그래픽 파일, 레이아웃 파일 등 컴퓨터에 있는 대부분의 파일을 버전 관리 가능하다. Centralized Version Control - 서버에 히스토리를 관리해서 각각의 개발자들이 원하는 내용을 서버에 업로드해서 즉각적으로 동기화가 이루어지는 시스템이다. 문제점은 서버에 문제가 생기면 많은 개발자들이 작업을 하지 못하고, 인터넷이 되지 않으면 작업을 할 수 없다. Distributed Version Control - 이러한 문제점을 해결하기 위해 나온 버젼 관리이며, 대표적으로 Git이 존재한다. 서버에만 히스토리 정보를 갖고 있는게 아니라, 개발자 모두가 히스토리를 갖고있다. 이렇게 분산된 ..

추후 작성할 이야기: 8개월간 인턴생활

iOS 개발에서 경험한 내용을 서술할 것이다. 기업 내부 정보는 제외할 예정이다. 2021.06 ~ 2021.08 (소프트웨어 외주 SI 기업: 세미콜론즈) 1. 음성인식 채팅 어플 2. 외주 개발이란? 2021.09 ~ 2022.02 (운송 플랫폼 SM기업: 센디) 1. RxSwift, RxCocoa .. 등 ReactiveX Programming 2. Repository patten, 진정한 MVVM 3. 설계의 근본 -> 모듈화, 추상화 4. 사용한 라이브러리 정리 및 모듈화 5. 코드 UI ... 현재 기업 내부 iOS console application 제작 완료되었다. 로그인, 로그인 유지, Rx로 이벤트 전달, 동기 비동기 작업, 네트워크 콜, MVVM + Coordinator, WebSoc..

카테고리 없음 2022.01.18

Repository: 용어정리

Repository 정보기술에서, 리포지터리는 데이터 집합체가 보관되고 조직적인 방식으로 유지되는 대체로 컴퓨터 저장장치 내의 주요 장소이다. 이 용어는 물건을 넣어둘 수 있는 용기나 방이라는 뜻의 라틴어인 repositorium에서 유래되었으며, 물건들이 모여지는 장소를 의미한다. 이 용어는 어떻게 사용되느냐에 따라, 리포지터리는 사용자가 직접 액세스할 수 있거나, 또는 네트웍 내에서의 재배치나 배포를 위해 특정 데이터베이스, 파일, 또는 문서들이 획득되는 장소일 수 있다. 리포지터리는 저장장치의 일부 접근 가능한 장소 안에 들어가는 데이터 집합체 그 자체이거나, 또는 데이터를 선택적으로 추출하는 어떤 능력을 의미할 수도 있다. 관련되는 용어로는 데이터 웨어하우스와 데이터 마이닝이 있다. 우리는 흔히 ..

프로젝트 관리 - 소프트웨어 공학에서의 나의 생각

소프트웨어 엔지니어의 관점에서 소프트웨어 공학에 대한 고찰을 하려한다. 방법론, 프로세스, 프로젝트 관리 등 이러한 것들은 왜 하는 것일까?? 우리가 졸업과제 혹은 해커톤, 프로젝트를 진행하면 담당자는 왜 계획서를 제출하라고 할까?? 정답에 가장 가까운 답은 "관리를 효율적으로 하기위해서" 일 것이다. 계획, 요구사항 분석, 설계, 구현, 테스트, 유지보수가 존재하면, 계획서에 대한 하는 분석과 설계에 너무 많은 비용과 노력이 들어간다. 생각하기 좋은 예시를 들자면 1. 애플이 스마트폰을 등장 시켰을때, 그들은 스마트폰이 세상을 지배할 것이라는 계획과 생각은 하지 못했다. 했더라도 이 정도는 아닐 것이다. 2. 애플이 에어팟을 등장 시켰을때 100조를 벌고있는 상태였다. 헤드셋, 이어폰 시장이 전체 5조..

[Swift] @discardableResult

@discardableResult 키워드는 무엇을 하는 것일까 @discardableResult 는 직역하면 버릴 수 있는 결과를 의미한다. 우리는 개발을 하다보면 IDE 환경에서 다음과 같은 Warning를 발견할 것이다. 변수나 함수나 등등 선언해놓고 생성해놓고 사용을 하지 않아서, 이거 혹시 뭔가 이상하지 않니? 이런 경고다. 하지만, 이런 것들이 필요없을 때가 존재한다. 이때, @discardableResult를 사용하면 된다. "나는 결과를 쓰든 안쓰든 신경 안 써도 돼. warning 띄워주지 마! " 라는 의미에 해당한다. Protocol에 선언된 이놈들은 사용하지 않아도 Warning을 띄우지 않게 된다.

포트폴리오: 2021.08.12 version

이력 부산대학교 정보컴퓨터공학과 재학 (2016.03 ~ ) 예비창업패키지 서류합격 ( ~ 2020.04) PNU DSC(부산대 학생 개발자 동아리) 백엔드 개발자(Django): 2기, 3기 활동 (2020.03 ~ 2021.02) BGM(부산 개발자 모임): Django Project Lead 경험 (2020.07 ~ 2020.09) 부산대학교 정보컴퓨터공학과 알고리즘 동아리 알콜 활동 (2020.07 ~ 2021.02) NIA(한국정보화진흥원) 데이터크리에이트 캠프: 우수상 (2020.09 ~ 2020.11) AI, 블록체인 부울경 아이디어 경진대회: 본선진출 (2020.10 ~ 2020.11) 전국 DSC 해커톤 TOP10 수상 (2021.01.30 ~ 2021.02.06) 부산대학교 정보컴퓨터공..

포트폴리오 2021.08.12

포트폴리오 관련자료

관련자료 PNU DSC 백엔드 개발자(django): 2기, 3기 활동 (2020.03 ~ 2021.02) NIA 데이터크리에이트 캠프: 우수상 ( 2020.09 ~ 2020.11 ) 인터뷰 영상: youtu.be/J6iuuGgbiRg 전국 DSC 해커톤 TOP10 수상 (2021.01.30 ~ 2021.02.06) https://github.com/yeongwooCho/ASF_Information_Hub GitHub - yeongwooCho/ASF_Information_Hub: DSC Korea Hackathon 2021 / 2021.01.31 ~ 2021.02.06 / ASF Information Hub DSC Korea Hackathon 2021 / 2021.01.31 ~ 2021.02.06 / A..

포트폴리오 2021.08.12

26. [Swift] 시간과 날짜: Date(), DateComponents()

개발을 진행하다 보면 날짜와 시간을 이용해야 하는 경우가 너무 많다. 그래서 날짜와 시간을 이용하는 Date와 DateComponents에 대해 살펴보자. 현재의 날짜와 시간 구하기 Swift 개발 문서에 따르면, Date는 어떠한 달력과 Time Zone과는 독립적인 특정 시점의 시간 포인트이다. 아래의 코드는 Date Class를 생성함으로 상대시간과 절대시간을 정할 수 있다. // 득정 시점 init() // 현재 시점의 시스템의 날짜와 시간 init(timeIntervalSinceReferenceDate: TimeInterval) // 21세기 시작 지점 2001. 1. 1 00:00:00 UTC를 기준으로 TimeInterval만큼 후의 시간 init(timeIntervalSince1970: T..

25. [Swift] 고차함수 - map, flatMap, compactMap

map의 기능은 전체 아이템의 타입이나 상태, 형태, 값을 한번에 변경할 때 사용한다. mapping 하는 함수이다. 결과를 배열의 상태로 반환한다. map Declaration func map(_ transform: (String) throws -> T) rethrows -> [T] Example let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"] names.map { $0 + "'s name" } // ["Chris's name", "Alex's name", "Ewa's name", "Barry's name", "Daniella's name"] let array = [1,2,3,4,5] array.map { $0 + 1 } // [2, 3, 4, 5..

24. [Swift] 고차함수 - forEach, filter, reduce

이번에는 꿀같은 고차함수들을 소개하려 한다. 원리는 간단하다. forEach - for문의 함수버젼 filter - 리스트에서 내가 원하는 요소만 빼온다. reduce - 리스트의 요소를 하나로 합쳐서 줄인다. forEach for-in(일반적인 For문)에서는 break, continue을 사용할 수 있고, return을 이용해서 빠져나오려면 에러가 납니다. forEach에서는 break, continue 구문을 사용할 수 없고, return을 통해서 빠져나갈 수 있습니다. (continue처럼 동작함) filter 리스트에서 원하는 값만 가져올때 사용한다. return 되는 값이 True가 되는 값들만 가져온다. true이면 값을 포함하고 false이면 값을 배제 합니다. reduce 리스트에 존재하..

포트폴리오: 2021.07.02 version

이력 부산대학교 정보컴퓨터공학과 재학 (2016.03 ~ ) 예비창업패키지 서류합격 ( ~ 2020.04) PNU DSC(부산대 학생 개발자 동아리) 백엔드 개발자(Django): 2기, 3기 활동 (2020.03 ~ 2021.02) BGM(부산 개발자 모임): Django Project Lead 경험 (2020.07 ~ 2020.09) 부산대학교 정보컴퓨터공학과 알고리즘 동아리 알콜 활동 (2020.07 ~ 2021.02) NIA(한국정보화진흥원) 데이터크리에이트 캠프: 우수상 (2020.09 ~ 2020.11) AI, 블록체인 부울경 아이디어 경진대회: 본선진출 (2020.10 ~ 2020.11) 전국 DSC 해커톤 TOP10 수상 (2021.01.30 ~ 2021.02.06) 부산대학교 정보컴퓨터공..

포트폴리오 2021.07.02

23. Transfer data between TabbarController

우선 이런 logic이 필요한 이유를 설명하겠다. TabbarController들은 각각 독자전인 ViewController이다. 즉, 데이터를 이동하는 것이 가능은 하돼 이동시킨다는 개념을 이용하면 비효율적인 점이 존재한다. 그래서 내가 생각한 logic은 데이터를 관리하는 Object를 만드는 것이다. 나는 Login을 하게 되면 위에 있는 TabbarController로 넘어오도록 구현했었다. 그런데 TabbarController에서 데이터를 받는 것까지 완성했지만, 바로 첫번째 ViewController로 이동했다. TabbarController에서 첫번째 ViewController로 이동했는데, 데이터를 어떻게 이동해야 할지 고민하다가 결론지었다. 독립적인 ViewController들 사이에 데..

세미콜론즈 음성인식 프로젝트

세미콜론즈 음성인식 프로젝트 사람 목소리를 text로 전환 전환된 text의 감정을 분석 사람 목소리의 데시벨이 가중치로 들어감 사실상 언어모델을 만들어야 함 감정 분석 결과를 텍스트로 정리 텍스트로 정리된 결과가 긍정일수록 초록색, 부정일수록 빨간색 정리된 텍스트를 기계목소리로 전환해서 사용자에게 반환 생각 해야 할 것 목소리의 크기가 감정에 포함이 되는가? 목소리가 큰 사람들은 특정 감정을 갖지 않는 경우가 존재한다. 언어 모델 만드는 것. 데이터를 어떻게 전처리하고, 학습시킬 것인가? 텍스트로 정리된 결과가 긍정, 부정 말고 어떻게 표현할 수 있는가?

ETC/세미콜론즈 2021.06.30

세미콜론즈 현장실습 (2021.06.28~08.27)

이번 여름 계절 현장실습으로 전문 외주 업체인 (주)세미콜론즈에 오게 되었다. 같이 참여한 현장 실습생과 회사 내부의 프로젝트에 참여하게 되었다. 아직 아이디어 구체화 단계이지만, 음성의 감정을 인식하는 프로젝트이다. 디자인과 실용화에서 확장을 해나가서 많이 배우게 되는 계기가 되었으면 한다. http://semicolons.co.kr/ 도전하는 기업 (주)세미콜론즈 4차산업을 준비하는 (주)세미콜론즈입니다. 통신을 하는 모든 디바이스 프로젝트를 개발합니다. semicolons.co.kr

ETC/세미콜론즈 2021.06.30

21. iOS TTS (Text-To-Speech)

iOS 10 이상부터 text data를 목소리 형태로 바꿀 수 있다. 코드는 아래와 같이 비교적 많이 간단하다. 주의할 점은 반드시 import AVFoundation 을 추가해야 한다. import UIKit import AVFoundation class TextToSpeechViewController: UIViewController { @IBOutlet weak var myTextView: UITextView! override func viewDidLoad() { super.viewDidLoad() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) myTextView.text = "오빤 맨날 그런식이야"..