본문 바로가기

NSLog(@"%@", dailyLog)13

드디어 몬터레이 업그레이드 했다 그간 맡아 하던 프로젝트가 있어서 몬터레이 업데이트를 망설였는데, 프로젝트도 마무리 되어 2차로 넘어갔다! 오늘 드디어 몬터레이로 업데이트하고 xCode도 업데이트 했다. 다행히 뭐 충돌 난다거나 갑자기 빌드가 안된다거나 그런것도 없고 오히려 디자인적으로 유려해진(느낌적인 느낌) 기분이라 좋당! 키보드를 황축에서 저적으로 바꿨는데 키압이 좀 느껴지는 편이라 손목이 조금 피로한거 같다. 그래도 다각다각한 느낌이 너무 좋다. 키감은 좋고 스테빌도 잘 잡혀 있지만 통울림인지 스프링음인지 뭔가 거슬리는 소리가 난다. 중저가도 아니고 브랜드 키보드를 산터라 속상하다.. 다만 스페이스 칠때마다 엄청난 쾌감이....ㅎㅎㅎㅎ 간이윤활하는 동영상 보고 도저히 못하겠어서 두꺼운 장패드를 알아봐야겠다... 2022. 2. 20.
데이터 베이스 정규화 1NF, 2NF, 3NF 관계형 데이터베이스 설계시 데이터의 중복이 발생하면 이상 현상(삽입 이상, 삭제 이상, 갱신 이상)이 발생하게 됩니다. 따라서 이 데이터 중복을 최소한으로 줄여 이상 현상 발생을 줄이게 되는데 이때 수행하는 것이 정규화(Normalization)라고 합니다. 정처기 공부시 기본 cs나 데이터베이스 경험이 없다면 한번쯤 발목 잡힐 부분이라 이 기회에 쉽게 정리해보기로! 따라서 정처기 외에 CS를 공부하시는 분이라면 뒤로가기 버튼을 눌러주세요~ 1NF (1정규형) 1 정규형은 원자값으로 구성 되어야 합니다. 여기서 말하는 원자는 고등학교 화학에서 한 번쯤 들어봤을 만한 화학적 성질에서 이야기하는 원자를 생각하면 쉬워요 더 이상 분해될 수 없고 쪼갤 수 없는 값을 말합니다. 즉 테이블에서 행과 열 중 열의 값.. 2020. 12. 29.
갑자기 맥북 인터넷 안될때(와이파이 지웠다 깔았는데도 안된다면 !) 와이파이는 잘 되는데 갑자기 맥북 인터넷만 안된다면, 와이파이는 들어오는데 갑자기 인터넷이 안되면 1. 우선 와이파이를 지워봅니다. 네트워크 환경설정을 연뒤 - 를 눌러서 와이파이를 지우고 +를 눌러서 와이파이를 추가해 주세요 그런데도 안된다면 2. 커넥터 다 뽑아보세요 충전기 빼고 연결되어 있는 잭 다 뽑아버리세요 저는 이 방법으로 됬습니다. 진짜 어이없... 2020. 11. 30.
[Android] 카드뷰 레이아웃 에러 or Refactor > Migrate to AndroidX android 카드 뷰 레이아웃을 사용하려고 dependency를 추가하는데 이런 오류가 발생했다. 이럴 땐 상단의 탭에서 Refactor을 클릭 Migrate to AndroidX 를 눌러주면 이런 창이 나옵니다. Migrate클릭 하단 창에서 Do Refactor 클릭해 줍니다. 그러면 오류가 깔끔히 사라집니다! Do Refactor 버튼까지 눌러주셔야 되요! 2020. 8. 26.
[Android] 안드로이드 구성 요소 * 해당 내용은 공부하면서 알게된 사실을 정리했습니다. 틀린 부분이 있거나 문제가 있다면 댓글로 알려주세요! +) 메인 스레드 생성 시점 : 애플리케이션 실행 하는 순간 -> UI 요소 갱신, 변경 일반 스레드 생성 시점 : 시스템이나 사용자에 의해 이후에 생성 4대 요소(Component)란 - Activity - Service - Broadcast Receiver - Content Provider 그 외에 Intent, view, Fragment 등이 있음 액티비티(Activity) - UI 화면을 나타냄 -> 즉 사용자가 앱을 실행 했을 때 보게 되는 인터페이스 화면 구성 요소를 가지고 있음 - 하나의 애플리케이션은 여러 액티비티를 가질 수 있음 - 액티비티의 생성은 메인 스레드이며 여기서 액티비티.. 2020. 8. 17.
[Android, Kotlin] 데이터 클래스와 기타 클래스 Do it! 코틀린 프로그래밍 책을 참고 및 인용 하여 작성 되었습니다. 책에 없는 주관적 내용이 있을 수 있습니다 DTO를 사용하는 이유 DTO는 일종의 표준과 같은 약속 -> 전송하거나 받고자 하는 어떤 요소든 데이터를 쉽게 다룰 수 있음 뷰란 mvc모델에서 뷰란 사용자와 상호작용을 수행함 모델이란 mvc모델에서 모델이란 데이터의 표현을 위해 생성 데이터 클래스의 선언 코틀린에서는 데이터 클래스를 제공함 - 주생성자는 최소한 하나의 매개변수 - 주생성자의 모든 매개변수는 val, var - abstract, open, sealead, inner 키워드 사용 불가 데이터 클래스가 자동 생성하는 메서드 data class Customer(var name: String, var email: String) .. 2020. 8. 9.
[Kotlin 20200805] 프로퍼티 초기화 06_1 프로퍼티 접근 프로퍼티와 필드의 차이점 자바의 경우 클래스 내에서 선언한 변수를 '필드'라고 하고 코틀린에서는 '프로퍼티'라고 칭함. 프로퍼티의 경우 접근 매서드인 getter와 setter를 기본적으로 가지고 있기 때문에 자바의 필드와 다른 명칭을 사용하는 것. 코틀린에서는 각 프로퍼티에 대해 접근 메서드를 자동으로 생성하며 주 생성자에 의해 매개변수를 정의할 수 있으므로 간단하게 코딩할 수 있다는 장점이 있다. class ClassName(var a: String, var b: Double) // 클래스 정의와 함께 주 생성자에서 매개변수를 정의함 코틀린에서의 접근 메서드 - val 로 선언한 프로퍼티는 getter만 가능. 값 바꾸는 것 불가하기 때문에 - var은 내부에서 접근 메서드가 .. 2020. 8. 5.
[Kotlin 20200804] 객체 지향 프로그래밍 - 인터페이스 참고 및 인용 도서 : Do it! 코틀린 프로그래밍 인터페이스에서 참조 - 인터페이스 참조하는 클래스 -> 인터페이스 가이드에 따라 내용 구현 - 다중 상속은 불가능 하지만 다중 인터페이스 지정은 가능 - 여러 인터페이스에 의해 메서드나 프로퍼티 명이 중복되는 경우 -> 앵글 브래킷()을 사용 open class A { open fun a() = println("class a and method a") fun b() = println("class a and method b") } interface B { fun a() = println("interface a method a") fun c() = println("interface b method b") } class C : A(), B{ override.. 2020. 8. 4.
[Kotlin 20200803] 객체 지향 프로그래밍 해당 내용은 Do it! 코틀린 프로그래밍 책을 공부하며 인용 및 정리한 것입니다. 저의 개인적인 견해나 의견이 포함되어 있습니다. 코드는 되도록 책을 보고 응용해서 작성했습니다. 05_3 상속과 다형성 상속의 장점 : 상위 클래스의 있는 내용을 하위 클래스에서 다시 구현하지 않아도 됨 다형성 장점 : 하나의 이름으로 다양한 기능을 수행할 수 있음 상속과 클래스의 계층 - 파생 클래스(하위 클래스)에서는 기반 클래스(상위 클래스)와 다른 프로퍼티와 메서드만 추가하여 사용해도 됨 - 코틀린의 최 상위 클래스 Any 클래스 -> 상위 클래스를 명시하지 않으면 Any 클래스를 상속 받음 - 코틀린에서 상속할 수 있는 클래스를 선언하려면 open 키워드 사용. open 키워드를 적지 않을 경우 기본 클래스로 선.. 2020. 8. 3.
[Kotlin 20200802] 객체 지향 프로그래밍 - 클래스와 객체 참고 및 인용 도서 : Do it! 코틀린 프로그래밍 및 개인적인 견해 코틀린은 함수형 프로그래밍, 객체 지향 프로그래밍을 지원한다. 객체지향 프로그래밍은 순차적으로 수행되는 절차적 프로그래밍과 다르게 복잡한 프로그램을 작성할 수 있다. 05_1 클래스와 객체의 정의 객체 지향 프로그래밍 개념 1. 추상화(Abstraction) : 특정 클래스 만들 시 기본 형식을 규정하는 방법. 목표로 하는 대상에 대해 필요한 만큼 속성과 동작을 정의하는 과정 2. 인스턴스 : 클래스를 만든다고 객체가 메모리에 존재하지 않음. 클래스로부터 생성한 객체를 인스턴스라 하며 인스턴스를 생성해야 프로그램 메모리에 객체가 존재하게 되는 것 3. 상속 : 부모 클래스의 내용을 자식 클래스가 물려받는 것을 말하며 부모 클래스의 속.. 2020. 8. 3.
[Kotlin 20200730] 프로그램 흐름 제어 인용 및 참고 서적 : Do it! 코틀린 프로그래밍 조건문 if문과 if~else문 if (조건식) { // 만일 수행하는 문장이 하나인 경우 블록 구문인 중괄호 생략가능 } else { } val answer = if (a > b) a else b 와 같이 한줄에 표현 가능하며 변수에 할당할 수 있음 블록의 표현식이 길어질 때 - 조건문 블록 표현 길어지면 중괄호로 - 변수에 if문을 할당할 경우 블록의 마지막 표현식이 변수에 반환되어 할당 val answer = if () { // 마지막 문장이 반환되어 answer이라는 변수에 할당됨 } else if문으로 조건문 중첩 readLine() : 콘솔로 부터 문자열을 입력받는 함수 입력받은 값의 기본 자료형은 String(문자열 타입) !!. : no.. 2020. 7. 30.
[Kotlin 20200729] 함수형 프로그래밍 공부 람다식과 고차 함수 호출하기 - 기존 기본형 변수 : 할당 값은 스택에 저장됨. 인자로 전달하는 경우 값은 복사 되어 전달 - JVM 은 포인터 주소 연산 없음 -> 값을 복사하여 객체 전달. 이때 복사되는 값은 객체의 주소 값에 의한 호출 - 함수가 다른 함수의 인자로 전달 되는 경우 -> 인자로 전달되는 함수는 즉시 수행하여 값을 전달(값으로 처리되기 때문) - 인자로 전달되는 시점에서 실행 됨 - 람다식 함수의 즉시 실행 - 매개변수에 직접 람다식을 함수 호출 형태로 작성해 줌 ex) val sum = a(lambda()) val lambda: () -> Unit = {} 이름에 의한 람다식 호출 - 실제로 호출할 때 실행 - 변수명에 람다식 자체가 매개변수에 복사됨 (즉시 실행 안하고 전달만 하려.. 2020. 7. 29.