본문 바로가기

분류 전체보기

(172)
23.12.08계산기 보완 계산기의 정답 영상이 올라왔는데, 내가 했던 방식인 클래스는 연결만 해두고 메인파일에서 계산을 하는건 깔끔하지 못하고 불안정한 방식이였다. 깔끔하게 하려면 fun main() { val addCalc = Calculator(AddOperation()) println("10 더하기 20 결과는 : ${addCalc.operate(10,20)} 입니다") val subCalc = Calculator(SubstractOperation()) println("10 빼기 20 결과는 : ${subCalc.operate(10, 20)} 입니다") val mulCalc = Calculator(MultiplyOperation()) println("10 곱하기 20 결과는 : ${mulCalc.operate(10, 20)..
23.12.07 널 세이프티 코틀린은 ?, !!, ?., ?: 로 Null예외로부터 생존가능 하지만 강제로 null이 아니라고하는 !!는 주의! · fun main(){ · var s = Student() · s.name = "참새" · s.address = "서울" · s.displayInfo() · } · · class Student { · lateinit var name:String · var address:String? = null · · fun displayInfo() { · println("이름은: ${name} 입니다") · println("주소는: ${address} 입니다") · } · } · String? = null 널이 있어도 정상출력됨 fun main(){ // var data = readLine..
23.12.06코틀린 접근제한자 public: 명시하지 않으면 기본적으로 public private: 동일한 클래스 내부에서만 접근가능 internal: 같은 모듈 내부에서만 접근 protected: 기본적으로 private이지만 상속을 받은경우에 타 모듈에서 접근가능 쓰는 이유는 무분별한 접근금지, 클래스들이 접근하면 안되는거 막을수 있음. 아마도 네가 클래스 asdf를 쓸 때 다른 파일에서 작업할 때 asdf쓰면 충돌하고 먹통되는데 그걸 막을수 있는 모양이다. class AccessTestClass { public var a:Int = 1 var b = 2 private var c = 3 internal var d = 4 protected var e = 5 public fun publicTest() { println("p..
23.12.06 계산기 오늘은 코틀린으로 간이 계산기를 만드는 작업을 해보았다. 다행히 버튼을 만들고 진짜 앱처럼 만드는게 아니라 말그대로 간이인, 숫자를 입력하면 계산이 되는걸 만드는 것이였는데, 너무 막막해서 최후의 수단으로 보라는 힌트를 봤지만, 그래도 힌트가 답은 아닌지라 해맬수밖에 없었다. 그래도 if, else같은 조건문을 사용해야 한다는건 알아냈고, 검색 끝에 알아낸 바에 따르면, fun main() { println("숫자와 연산기호, 숫자를 순서대로 입력하세요.") Calculator().Operation() } 먼저, 출력할 메시지를 main 안에 써놓고 각자 class와 조건문에 사용할 이름도 집어 넣는다. 그리고 클래스의 이름은 main안에도 집어 넣었던 Calculator로 해서 class Calcula..
23.12.05 코틀린 오늘은 코드카타라는걸 해봤는데, 아무리해도 틀렸다고만 나와서 골머리를 싸메다가 코틀린 문법을 쓰고 있었는데 세팅이 c언어로 되어 있는걸 발견했다. 이런건 미리 알려줘야 하는거 아닌가? 결국 또 시간만 날리는 결과가 되어버렸다.. 반복문 for, while가 있음 for은 안에있는 숫자에서 숫자까지 반복이란 뜻으로, 예를들자면, 내 이름을 for로 10번 반복시킨다고 하면 for(i in 1..10) { println("${i}번째: 내 이름은 참새") } 그걸 while로 하면, var i = 0 while(i return "A" in 80..89 -> return "B" in 70..79 -> return "C" else -> return "D" } } 클래스의 종류 클래스엔 여러 종류가 있음 1. d..
2023.12.04 오늘은 드디어 코틀린을 배우는 날이다. 그런데, 코틀린을 하려면 필수적안드로이드 스튜디오가 설치가 안된다! 몆번이나 다시해보고, 재부팅도 했지만 안되서 문의해보고, 검색도 해본 결과, 내 사용자 이름이 한글이라서 그랬다는 결론이 나왔다. 그래서 가장 먼저, 윈도우 계정을 새로 만들어 봤다. 실패. 그 다음엔 제어판으로 가서 사용자 이름을 바꿔봤다. 실패! 그 다음엔 컴퓨터 안에서 새 계정을 만들어 봤다. 처음엔 된줄 알았지만, 이것도 실패!! 실패의 원인은 뭔짓을 해도 폴더의 이름이 한글 이름에서 변경되지 않아서 였고, 그래서 폴더 이름을 변경하는법을 검색해서 cmd에 레지스터에 이것저것 건드리고 바꾸고, 관리자 계정을 다시 형성해서 그 계정에서 다시 cmd로 폴더 이름을 바꾸는 명령어를 입력했는데 안되..
이번 팀 프로젝트의 회고록 팀프로젝트를 하면서 느낀것은 나의 부족함이였다. 아직 초보중 왕초보인지라, 아는것은 강의에 나온게 전부이기 때문에 다른 조원들에게 묻고 도움을 받아야했다. 거기에다 만들고 싶었던것, 구상했덩것들도 많았지만, 너무 큰 꿈을 꾼 것인지 제대로 계획대로 되지 않아서 좌절도 맛봐야만 했다. 특히 인원수가 부족한것이 문제였다. 3명밖에 남지 않아서 제대로 분업을 하기 힘들었고, 거기에 내가 할수 있는게 기본적인것 밖에 없었기 때문에 일의 분배가 공평하지 못하고 팀장에게 집중된것도 문제였다. 모르는건 질문해야 하지만, 그럴수록 다른 조원의 부족한 과제시간을 빼앗기는것이 문제였다. 그래서 내가 맡은 부분은 완성할수 있었지만, 전체적으론 불완전하게, 만족하지 못한채로 끝났다. 이번에 했던 활동을 kpt로 나누면, K:..
23/12/01 나는 파이어베이스 밖에 배우지 않았지만 팀원들은 node js라는것을 쓰기 때문에, 그것에 대해 간략하게 배웠다. 파이어 베이스는 사이트가 따로 뜨지만 노드는 그렇지 않은 모양이다. 거기에다 작동방식도 명령어도 너무 달라서 이해하기 어려웠다. 그래서 그런지 시작도 cmd를 띄우곤 명령어를 입력해야 한다는것부터 굉장히 신기했다. 우선 깃허브에 올라온 파일을 내려받으려면 어제 배운 명령어인 git clone 주소명 을 입력한 뒤 이동 명령어인 cd로 그 파일명으로 이동, code . 을 하면 실행이 된다. 그리고 const connection = mysql.createConnection({ host: 'localhost', port: '3306', user: 'user', password: '!thwn1wk..