1. 배운것
1) 알고리즘 코드카다
숫자 비교하기
문제 설명
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = if(num1 == num2) 1 else -1
return answer
}
}
해설: 클래스 솔루션 안에 펌 메소드(솔루션) (넘원: 자료, 넘투:자료): int(결과값을 내기위한 자료) {
바 엔세(변수 숫자들): 자료 = if (넘원 ==넘투) 결과값1 else(조건 미충족시) -1(결과값)
리턴 엔서( 결과를 숫자로 나타낸다) }
* 문제 이해보다 문제를 컴퓨터 언어로 변환시키는 부분이 어렵다고 느껴집니다.( 박지영)
* if 조건문에서 if(조건 a) { } else if(조건b) { } else { println( ) }
*알고리즘 코드카타에서 println("${text}")는 먹힌다. 문자쓰고 싶을때 이 양식을 지켜주고, printin(숫자)해도 코드 결과로 나온다.
* 코드를 볼때 전체적으로 이해하려고 하지 말고, 한줄에서 ( )안밖에 들어가는 코드(등등)가 정확하게 무엇을 하는 앤지, 어떻게 사용하는지, 응용하는지 파헤치기를 권유함-
*라인마다 주석달기 습관들이기- 나중에는 자기코드 까먹음.
*코드리뷰 하는 방법 (사진으로 설명)
예시코드를 하나씩 뜯어서 자신이 이해한 언어로 주석을 달면서 예시코드내용을 이해하는 방법. 오늘 조금이라도 시도해볼예정이다.



* 인터페이스(추상적 문법)- 설계도(클래스) 지침서, 엑스트라- 지침서의 지침을 따라라(?) 의미. 나중에는 인터페이스를 더 많이 쓰게 될 예정이다.
**컴퓨터공학과 관련 공부방법**
1. 강의를 듣다가, 관련된 코드나 내용을 구글링(코드 자체를 검색, 코드를 한글로 검색, ~상황인데 코틀린에서 어떻게 하는지 등 어지간해서는 나옵니다.)을 하고, 코드를 쓰고 실행해보고, 안되면 다시 강의로 돌아가 듣습니다.
2. 코드를 이미지화 합니다. 예를 들어 프린터면, 프린터를 떠올리고 역할- 출력해준다는 연상작용으로 코드들을 기억하면, 코드를 다시 기억해내기에 좀더 좋습니다.
3. 코드는 먼저 역할과 사용법을 알고, 실제로 사용했을때 에러가 나면, 기본개념을 다시 공부하며 좀더 알아보는 시간을 가집니다.
4. 학습할때 고민을 30분에서 1시간 정도만 고민하고, 구글링 (코드 자체를 검색, 코드를 한글로 검색, ~상황인데 코틀린에서 어떻게 하는지 등 어지간해서는 나옵니다.)하고, 관련글들을 봅니다. 거기서 관련된 정보들을 정리하고, 고민하던 문제가 해결되면 좋습니다.
고민이 해결이 안될 경우, 질문자에게 "~문제를 ~에러가 나서, 구글링해서 ~자료들을 찾아 해봤는데 모르겠습니다.
어떻게 하면 좋을까요?" 물으며, 코드 작성과 에러부분 참고자료들을 보여주며 질문하고 대답을 들었을때 그 대답이 본인에게 더 잘 기억되고, 자신의 것으로 됩니다.
5. 튜터님이나 매니저님, 혹은 전공하신분들에게 질문할때 가장 좋은 방법은 코드작성 화면혹은 에러화면등 관련 화면을 보여주면서 고민을 질문하고, 대답을 듣고, 수정 후 해결되는 과정이 보여지는 것이 좋습니다.
6. 오픈 소스나 좋은코드를 자주 보고, 나쁜 코드가 작성된 것을 보면서 '이렇게 짜면 안되는구나' 주의하면 좋습니다.
7. 에러나 버그를 무서워하지 마세요. 채용하는 사람입장에서는 에러나 버그를 많이 접하고, 해결해 본 사람들 더 선호하는 경향이 있습니다.
8. 한줄하고 실행하고, 되는지 확인 후 저장하는 습관을 들이세요. 강의안은 하나의 자료로, 구글링 (코드 자체를 검색, 코드를 한글로 검색, ~상황인데 코틀린에서 어떻게 하는지 등 어지간해서는 나옵니다.) 하는 습관을 들이세요. 그리고 라인마다 주석달기 습관들이( 나중에는 자기코드 까먹음.)세요.
9. 실제로 코드를 작성하다보면, 예시로 코드 작성은 한시간 걸리는데, 코드에 대해 여러가지를 고민하는 시간은 7~8시간입니다. 노트가 있다면 코드 작성을 위한 이미지를 그리고, 관련된 코드들을 찾아 작성해보세요.
**코틀린 3주차 강의 관련 질문하고 답들은 것 정리**
1. 계산기를 만들때 자료가 일체 들어가지 않으니, INT없이 진행합니까?
-INT는 정수를 담는 자료(예-접시)로 정의하고 들어갑니다. 정수 뿐만 아니라 실수(소수)도 들어가기에 add, add Double이 들어갑니다.
2. fun(메소드), fun main( ) { 메소드(코드) } 는 공장에서 찍어내는 상자에 비유하면 두가지로 나뉘어 쓰이는 부분입니다.
클래스에서는 함수를 메소드로 부릅니다. 클래스에서는 정보(프로퍼티), 행위(메소드) 라고 부릅니다.
3. 객체는 클래스(설계도)로 만들어진 실물이며, 오브젝트 클래스는 처음부터 실행시킬때 미리 객체로 실행 시킬께, 단 하나만. 그리고 그때그때 필요할때 쓰세요.
4. 클래스에서 장점으로 반복적으로 쓰이는 메소드는 클래스로 만들어 따로 정리해줌으로서, 유용한 자동메소드로 쓸수 있습니다.
***알고리즘 코드 카타 한문제 풀고 제출하기와, 구글폼에서 제출하는 것이 따로 있습니다. 잊지 말고 그날 알고리즘 코드카타로 푼 문제 사이트에서 제출하고, 구글폼에서 양식에 맞게 넣어 제출하세요.***
코틀린 강의 3주차 전체적으로 한번 더 들었습니다.
2. 오늘 있었던 일
아침에 알고리즘 코드카타를 풀고 팀원들에게 화면공유하면서 제 나름대로 해설하고, 피드백 들은 내용입니다.
위에 내용과 겹치서 생략합니다
계산기 과제는 어떻게 할지를 몰라서 코틀린 강의를 듣고, 구글링을 해서 검색을 했습니다..
잘 안되서, 튜터님이 설명을 하시면서 +.- 까지 식을 만들고 풀어주셨습니다. 내일 *./도 마저 해볼 예정입니다.
그리고 안드로이드 스튜디오에서 깃허브로 연결하는 것을 시도해볼 예정입니다.
부족한 저를 도와준 팀원분들, 튜터님들 감사합니다.. 그리고 제 마음은 울고 싶습니다..
오늘도 다들 수고많으셨습니다!
'개발일지' 카테고리의 다른 글
| 2023.12.9~10 TIL (0) | 2023.12.10 |
|---|---|
| 2023.12.8 TIL (0) | 2023.12.08 |
| 2023.12.6 TIL (2) | 2023.12.06 |
| 2023.12.5 TIL (2) | 2023.12.05 |
| 2023.12.4 TIL (0) | 2023.12.04 |