분류 전체보기
아직 정리가 안된 문장들(향후 포스팅 주제)
iOS 델리게이트 패턴 프로토콜(자바의 인터페이스?)을 이용하여 구현 프로토콜이란? cocoa에서는 왜 import하지않아도 경로 상관없이 다른파일 객체를 가져다 쓸수 있는가 xcode내 그룹으로 묶어서 파일을 관리하는것은 실제 디렉토리가 아닌 가상폴더이기 때문 mvc와 mvvm storyboard는 기본적으로 mvc인가? 잘 정리된 글(참고용) swift structure와 class의 차이 struct는 value타입이므로 값에 직접 접근하기 때문에 인스턴스를 let으로 선언시 수정이 불가능(call by value) class는 reference타입이므로 인스턴스를 let으로 선언해도 내부 프로퍼티가 var라면 수정 가능(call by reference) 생성자 메소드(init) 저장 프로퍼티와 연..
[Swift] Guard문
Guard란? 옵셔널 바인딩 수행중 변수에 nil이 들어있으면 예외처리를 할 수 있도록 하는 문법 func greeting(_person:[String:String]) { guard let name:String= person["name"]else{ //만약 nil이면 return으로 함수를 탈출한다 return } //nil이 아니면 수행 print("안녕하세요 \(name)님") } //함수호출 var personInfo:[String:String] = [String:String]() personInfo["name"] ="김감자" greeting(personInfo)
[Swift] 옵셔널 체이닝
옵셔널 체이닝(Optional Chaining)이란? swift는 옵셔널 변수에만 nil을 할당할 수 있다. 그리고 옵셔널 바인딩으로 안전하게 옵셔널 해제도 가능하다. 그런데 또 문제가 생겼다. struct Human { var name : String? var man : Bool = true } var boy : Human? = Human(name: "홍길동", man: true) 위와같은 변수를 선언할 때 //안정성 검사를 하고 접근 if boy != nil { if boy!.name != nil { print("이름은 \(boy!.name!)입니다") } } 이런식으로 nil을 체크하거나 //옵셔널 비강제 해제 구문을 사용하면 if let b = boy { if let name = b.name { ..
[Swift] 옵셔널과 옵셔널 바인딩
옵셔널(Optional)이란? swift는 옵셔널 변수에만 nil을 할당할 수 있다. 다음과 같이 변수명뒤에 '?'를 붙여서 옵셔널로 지정이 가능한데, "이 변수에 nil이 들어갈 수도있고 아닐수도 있고~"라는 의미이다. var optInt : Int? optInt = 3 var optStr : String? optStr = "Swift" var optArr : [String]? optArr = ["C", "Java", "Objective-C"] "그럼 전부 옵셔널로 변수 선언하면 끝 아닌가?" 라고 생각 할 수 있지만 애플은 다 계획이 있다. 이런식으로 만든 이유는 런타임 중에 문제가 발생하는걸 방지하기 위함이다. 만약 값이 반드시 필요한 로직에 nil이 들어가면 프로그램은 문제가 발생하지만 이것을 컴..
C/C++ 언어 기본 라이브러리
헤더 파일 기능 관련 함수 stdio.h 표준 입출력 printf(), scanf(), getchar(), fopen(), fseek(), ... string.h 메모리와 문자열의 처리 strcat(), strcmp(), strcpy(), strlen(), ... ctype.h 문자 검사 및 변환 isalnum(), isalpha(), isgraph(), tolower(), ... math.h 삼각함수, 지수 절대값 함수 등 수학 함수 sin(), cos(), tan(), log(), exp(), fmod(), sqrt(), abs(), ... stdlib.h 메모리 동적 할당, 가상 난수 발생, 문자열 변환 malloc(),free(), rand(), strtod(), atof(), ... malloc..
파이썬 코딩테스트 꿀팁 모음
예전에 노션에 기록했던거 가져옴 깨지는건 다음에 고칠 예정.... 노션으로 보기(이게 나음) 자료형 실수 수 자료형의 연산 / : 결과가 실수형 예) 7/3 = 2.333333… % : 나머지 예)7%3 = 1 // : 몫 예)7//3 = 2 ** : 거듭제곱 예)5**3 = 125 반올림 함수 round() round(**실수형데이터**, **반올림하고싶은 위치 -1**) 123.456을 소수점 셋째 자리에서 반올림하려면 round(123.456 , 2)라고쓴다. 결과는 123.46 반올림 위치를 지정안하면 디폴트로 소수점 첫째자리에서 반올림한다. 리스트 리스트는 list[-1]처럼 음수 인덱스로 접근 가능 슬라이싱: list[ **시작인덱스** : **종료인덱스-1** ] 두 번째 원소부터 네 번째 ..
파이썬 입출력 심화
원래 노션에 정리했던 글 가져옴 형변환 #입력을 받자마자 int형으로 형변환 i = int(input()) split(): 특정 문자를 기준으로 문자열을 잘라 리스트로 만들어주는 함수 # 입력값: "1 2 3 4 5 6 7 8 9 10" a = input().split() print(a) # ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] # a의 각 객체는 숫자가 아닌 문자열이다 map() # map(변환함수, 반복가능한 객체) < 변환함수에는 원하는 자료형(int, float 등)입력 a = map(int, input().split()) # 이때 a는 map 타입의 객체이기때문에 list 또는 tuple로 변환이 한번 더 필요하다. a = list(map(..
파이썬 입출력 기본
원래 노션에 정리했던 글 가져옴 input() >>> a = input() #hi >>> print(a) #'hi' input은 입력되는 모든 것을 문자열로 취급한다. number = input("숫자를 입력하세요: ") #숫자를 입력하세요: 3 print(number) #3 #input은 입력되는 모든 것을 문자열로 취급하기 때문에 number는 숫자가 아닌 문자열임에 주의 type(number) # print() a = 123 print(a) #123 a = "Python" print(a) #Python a = [1, 2, 3] print(a) #[1, 2, 3] 큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다 print("h" "i") #hi 콤마로 문자열 띄어쓰기 print("h", "i")..
프로그래밍 언어의 역사와 특징
평가영역 C 언어의 역사와 특징 C++ 언어의 역사와 특징 JAVA 언어의 역사와 특징 C 언어의 역사와 특징 역사 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 유닉스에 사용하기 위하여 제작 시스템 프로그래밍에 매우 적합하지만 응용 프로그래밍에도 사용 특징 뛰어난 이식성 모든 컴퓨터에서 동일하게 동작하는 표준 라이브러리를 제공하기 때문 저급언어 특징을 가진 고급언어 함수의 활용이 가능 다양한 연산자 및 간결수 a=b=c=0 과 같이 간결하게 표현 가능 포인터를 이용한 메모리 관리 메모리 주소를 직접 제어할 수 있으므로 효율적인 메모리 관리가능 C++ 언어의 역사와 특징 역사 시간이 흘러 프로그램의 규모가 커지자 C언어에 객체지향 개념을 추가(1983~1985) 특징 C와의 호환성을 제공하고 문법체계..
객체지향 질의
평가영역 상세 평가내용 없음 OQL(Object Query Language) OQL은 ODMG(Object Database Management Group)에서 제안한 ODMG-93의 표준 질의어 OQL은 SQL의 기능을 대부분 지원하면서 객체지향 질의 기능을 추가했다.(객체지향 DB의 SQL) OQL의 특징 ODMG 객체 모델을 지원하는 선언적 질의 언어이다. SQL-92의 SELECT문 기능을 모두지원 SQL-92에 비해 경로식, 메소드 호출, 객체생성, 다형성 및 연산자의 조합 등을 추가로 지원