본문 바로가기

분류 전체보기

(353)
Xcode의 info.plist는 어디로 갔을까? 발단뜨거운 성탄절을 보내기 위해 짧게 사이드프로젝트를 진행 중이다.오랜만에 AdMob을 사용하려 했더니 info.plist가 보이지 않아 정리해 본다.래거시들은 혼용해서 쓰는 모양이다만 25년에 와서 새로 만드는 프로젝트는 좀 엄격히 관리하는 모양이다.애플은 래거시의 info.plist 파일 대신에 프로젝트의 타깃에 이를 통합시켰고, 별도로 관리할 수 있는 방법도 있지만 타깃에서 직접 작업할 것을 권장하고 있다.AdMob 사용을 위해서는 SKAdNetworkIdentifier를 비롯 Info.plist에 값을 여러 개 등록해줘야 한다.AppID 등록이야 하나만 하면 되니 그러려니 하는데SKAdNetworkItems SKAdNetworkIdentifier cstr6suwn9.skadnetwo..
취업후 1년, 나는 어딜 향해 가는가? 개발자의 취업 준비는 우주를 떠도는 것과 같다.목표는 칠흑 속 한 점의 빛과 같고, 어떻게 가느냐는 보이지 않는다.지난 취업 준비 기간을 돌이켜 보며 동기, 후배, 선배에게 하는 말이다.결국에 책만 보는 공부는 의미가 없고, 문제를 무한히 푸는 것도 도움은 될 지언정 결정적인 역할을 하진 못한다.머릿속에 있는 건 반드시 끄집어 내야하고, 이것을 타인에게 증명하는 건 결국 '프로젝트'다. 개발자의 성장 또한 프로젝트를 거쳐야 속도가 붙는다. 가능하다면 이를 주도하는 역할을 해 보는 것이 좋다.면접때 강점으로 내세운 부분은 성실성, 끈기, 자기주도성, 추진력, 결단력 이었고, 가치 있다 판단했는지 인턴 조기종료와 함께 1차 연봉 인상, 그리고 해가 바뀌며 30% 수준의 연봉 인상이 있었다. 초봉이 좀 적었으..
기가바이트 B650M-K 거진 10년만에 데스크톱을 바꾸게 된 것 같다.전역과 동시에 맥으로 생태계를 옮겼고, 바빠짐과 동시에 게임이라는 취미가 사라졌으며, 그렇게 데스크톱에 대한 관심은 청소에서 크게 벗어나지 못했다.실제로 컴퓨터 사용의 대부분이 맥이 되다보니 맥을 바꿔야겠다는 생각만 잔뜩 한 것 같다. 2024.04.28   www.coffeeburgercode.page최근 사이드프로젝트로 게임을 만들기 시작하면서 개발자만 세 명 있는 팀의 아트 공백을 메꾸기 위해 스테이블디퓨전을 사용하게 됐다.그제야 비로서 데스크톱을 바꿔야 겠다는 생각이 들었고, 윈도우10의 지원 종료가 임박한 것이 마음을 급하게 만들었다.이 쪽 분야는 발전이 워낙 빠르기도 하고, 굳이 CPU나 기타 사양이 많이 좌우하는 분야도 아니다.그래서 아직은 작은..
005. nullSafety val data: String? = "call me maybe."kotlin의 변수들은 기본적으로 null을 허용하지 않는데, 이를 가능하게 하는 것이 존재한다.swift의 optional과 거의 동일한 기능의 nullable인데 형태도, 사용법도, 기능도 굉장히 비슷하다.if (data != null) { println(data.uppercase())}println(data?.uppercase())null을 포함할 수 있기 때문에 두 번째 줄과 같이 간편하게 데이터의 유효성을 체크할 수 있고val num1: Int = 3val num2: Int? = 10val num3 = num1 + num2 //(X)null을 포함할 수 있기 때문에 기본 변수와는 다른 타입으로 간주하고, 바로 연산을 진행할 수..
004. loop와 function Loop// forfor (city in cities) { println(city)}// whilevar index = 0while (index for문과 while문을 사용한 반복문도 동일하게 존재하며, value binding도 당연히 사용할 수 있다.//close ended range0..10//open ended range0..012345678910for문에 자주 사용하는 범위 연산자는 swift의 것과 많이 닮아있는데, 기본적으로 전위를 포함하고, 후위를 닫아주는 형태이다.open ended range는 최근 추가된 연산자로, 기존의 rangeUntil을 대체한다.Functionfun main() {}지금까지 줄곧 사용하고 있었지만 위 표현식이 kotlin의 함수 표현식이다.fun sayH..
003. 조건문과 array 그리고 list 조건문val myAge = 15if (myAge >= 18) { println("can drunk")} else { println("reject")}if문은 if와 '()'를 사용한다.# Pythonif True: print("True")// Swiftif true { print("True")}python과 swift와는 조금씩 다른데, '()'의 유무만 제외하면 swift와 굉장히 흡사하다. Arrayval temparr = arrayOf("Seoul", "Busan", "London", "NewYork")println(temparr)[Ljava.lang.String;@6d03e736array의 선언은 arrayOf를 사용한다.선언 시점에서 메모리의 값이 정해지며, 요소를 추가하거..
002. 기본 연산자들 논리 연산자를 제외한 기본 연산자들을 좀 알아보자val name: String = "Martin"val surname: String = "Q"val fullName = name + " " + surname합 연산자는 역시나 문자열에도 사용할 수 있다.kotlin도 여백은 따로 추가해 줘야 하기 때문에 필요하다면 위와 같이 공백에 해당하는 문자열을 끼워 줘야 한다.val num1: Int = 10val num2: Int = 5val num3: Float = 3.0fval addition = num1 + num2val subtraction = num1 - num2val multiplication = num1 * num2val division = num1 / num2val modulo = num1 % num2..
001. 출력과 기본 자료형 빠르게 kotlin의 출력과 기본 자료형에 대해 알아보자fun main() { println("Hello world") print("line 2") print("line 3") print("line 4\n") print("line 5") println("Martin")}kotlin의 출력에는 print와 println 두 가지가 존재한다.println은 print line next의 약자로 다음 출력이 새로운 라인을 할당할 수 있도록 한다.Hello worldline 2line 3line 4line 5Martin출력은 위와 같은데 println이 실제로는 자동으로 '\n'을 끝에 추가해 주는 역할을 하기 때문으로,이전 출력 내용인 print("line 5")가 linebr..
99클럽 - n^2 배열 자르기, k진수에서 소수 개수 구하기 n^2 배열 자르기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr아이디어(작성중)풀이def solution(n, left, right): result = [] for idx in range(left, right + 1): row = idx // n col = idx % n if col  k진수에서 소수 개수 구하기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr아이디..
99클럽 - 나이 계산하기 https://www.acmicpc.net/problem/16199아이디어(작성중)풀이birth_year, birth_month, birth_day = map(int, input().split())ref_year, ref_month, ref_day = map(int, input().split())international_age = ref_year - birth_yearif ref_month