· 성취/개선/학습한 내용 🏆 오늘은 채팅 앱 뷰를 구현하는 공부를 했다. 오토레이아웃을 이용해 채팅 버블을 유동적으로 조절했고, 데이터도 뷰끼리 주고 받게 했다. 그리고 꽤 오랜 시간에 걸쳐서 구현하다보니 제법 뷰와 테이블 뷰 셀을 연결하는 것에 익숙해졌고, Extension이라든가 protocol에 좀 더 능숙해진 것 같다. 그리고 DateFormatter 역시 내가 원하는 것으로 변환되게 사용할줄 알게 되었다. keyboardLayoutGuide scrollToRow autoDimension 그리고 채팅 방에 들어갔을때 마지막 채팅이 있는 곳으로 스크롤을 위치시키려면 아래와 같은 코드를 적어야한다. //채팅방 제일 최신 쳇 위치로 let index = IndexPath(row: self.chatRo..
· 성취/개선/학습한 내용 🏆 프로그래밍의 기본 중 하나인 열거형과 UIKit에서 화면이 다른 화면으로 전환할 때 데이터를 넘겨주는 방법을 학습했다. 이전에는 UIKit으로 작성된 코드만 봐도 굉장히 어려워 보였는데, 개념부터 하나하나 익혀가니 생각보다 간단하고 명료한 것 같다. 그리고 내가 원하는 일을 하는 코드가 생각보다 더 간단하다고 생각이 들었다. 몰랐을 땐 GPT를 이용해 찾아보면 굉장히 길고 어려운 코드였는데 쓸데없는 코드들이 덧붙여져서 그랬다는 것을 알 수 있었다. 그리고 Lazy나 lazy처럼 뒤늦게 사용시점에 초기화되는 static의 쓰임새도 학습할 수 있었다. 뭔가 퍼즐이 하나하나 맞춰지는 느낌이다. Enum 원시값 getter setter 연산 프로퍼티 Lazy 값 전달 · 어려웠던 ..
오늘은 앞으로 공부하고 직접 코딩할 스위프트 책을 서평해보려고 한다. 우선 책을 평가하기 전 나의 상황에 대해서 간단하게 말하고 시작하겠다. 작년(2022년도)까지는 코딩경험이 전무한 상태로 앱에는 관심이 많아서 서비스 기획 등을 준비해본 경험이 있고 현재 국비교육을 통해 c언어와 자바를 조금 배운 상태이다. 그럼 본격적으로 책에 대해서 이야기해보려 한다. Do it!의 장점 1. 매년 개정이 된다. 의 가장 큰 장점은 매년 개정이 된다는 것이다. 개정이 오랜기간 동안 되지 않은 책은 달라진 기능과 모습 등으로 헷갈릴 여지가 많기 때문이다. 국비교육을 받으면서 c언어 책을 받은 적이 있는데 몇년이 지난 편집기를 사용해서 설명한 책이다. 그래서 달라진 모습과 ..
문제1 프로그램 사용자로부터 하나의 영단어(String)를 입력 받아라. 그리고 이 입력된 단어를 한줄에 한문자(character)씩 출력시켜 보아라. 단, 출력할 때 각 문자에 1이 더해진 문자가 출력되도록 해보자. 예를 들어, "Array"라는 단어가 입력되면 B s s b z A: 문제는 간단하다. 다만 마지막 출력할 때 형식을 (char)로 바꿔줘야 한다.!! 문제2. 2개의 String 참조변수를 선언해라. 그런다음 프로그램 사용자로부터 영단어를 입력 받아서 String변수 중 하나로 참조한다. 그 다음 남은 하나의 String 참조변수에 저장된 영단어를 역순으로 뒤집어서 String 객체를 만들어서 참조해보자. 뒤집고 나서는 제대로 뒤집혔는지 확인하기 위해서 출력해보자. 예를들어, "Hello..
다시 한번 말하자면 C++ 공부는 C언어에서 Java로 넘어가는 과정을 원활하게 하기 위해 배우는 것이지 C++ 언어 그 자체를 공부하고자 하는 것이 아니다. 오늘 배울 목차 1. Programming 방법론 2. 객체 지향 vs 절차 지향 3. C++ 시작 1. Programming 방법론 ◎Programming 방법론 1. 순차 지향 프로그래밍 2. 절차 지향 프로그래밍 3. 객체 지향 프로그래밍 4. 함수형 프로그래밍 처음 컴퓨터 언어는 순차 지향 언어였다. 즉 맨 위부터 아래로 순서대로 모든 것을 다 작성하고 실행하는 방식이었다. 이후 이전까지 공부한 c언어와 같은 절차 지향 언어가 나타났다. 이때 함수(function)를 이용해서 코드를 더 간결하게 사용하는 방법이 생겼다. 그런데 graphic..
오늘 배울 것은 함수 Function이다. 함수는 10번 강조해도 지나침이 없는 것이니, 제대로 공부해야 한다. ※함수 Function : 특정 기능의 코드가 작성된 영역 함수 정의 문법 리턴타입 함수이름(파라미터) { 특정 기능의 코드들; } 리턴타입 : int, double, char, void ........ 함수가 없다면 코딩하는 규모가 커지면 커질수록, 똑같은 기능을 구현하기 위해 같은 코드를 또 입력하게 된다. 이는 곧 코드가 길어지는 결과를 초래한다. 그럼 코드가 길어지면 어떻게 될까? 우선 가독성이 떨어진다. 가독성이 떨어지면 디버깅할 때나 협업할 때 문제가 발생한다. 가독성을 높이고 효율을 높이기 위해서 함수를 사용해야 한다. 지금까지 우리는 void main이라는 함수를 이용해 왔다. ..