본문 바로가기

분류 전체보기

(172)
23.12.20 코틀린 3일차 이제 예외처리를 해야한다. 예외처리가 필요한 이유는 courseId 를 통해 Course를 조회해야 하는데, courseId에 해당하는 Course 가 없는 상황같은 것을 방지하기 위해서이다. 예외처리는 exception package를 만들어서 해결하는게, 이 예외처리는 우리가만든 것 전체에 영향을 미쳐야 하기에 도메인의 바로 밑에 만든다. 그리고 그 밑에 ModelNotFoundException 데이터클래스를 만든다. data class ModelNotFoundException() : RuntimeException() 이렇게 하는데, 앞으로도 예외처리는 RuntimeException을 쓰면 된다. data class ModelNotFoundException(val modelName: String, v..
23.12.19 스프링 2일차 우리가 사용할 패키지 구조 • domain o user  controller  service  repository  dto  model  exception o course  controller  service  repository  dto  model  exception • infra 이걸 이용해서 그대로 패키지를 만든다. 도메인을 최상위 패키지로, 하위로user, course, lacture, courseapplication을 만든다. 참고로, 하위 패키지를 만들면 하나로 합쳐지는데, 새로운 패키지를 만들때 패키지,하위패키지,에서 하위패키지, 부분을 지우고 새 패키지 이름넣으면 분리된다. course 밑에 controller, service, repository, dto, mode..
23.12.18 스프링 입문! 참고로 아래에 노란색은 답, 빨간건 내가 선택한 오답이다. 이것은 주말에 살짝 선행학습했던 스프링 기초에 대한 입문 문제다! 1. Library 와 FrameWork의 설명 중 틀린 것을 고르시오* ① 특정한 언어의 개발 환경에 기본적으로 포함된 것들은 대부분 표준 Library라고 불린다. ② Library는 Application을 호출하는 Caller 역할을 한다. ③ 이유: 프레임워크 어플 라이브러리 순이다. ④ FrameWork는 개발 시 목적에 따라 고민할 필요 없이 이용할 수 있도록 일괄로 가져다 쓰도록 만들어 놓은 틀이다. ⑤ Spring 은 Library가 아닌 FrameWork이다. 2. CSR(Client Side Rendering) 특징 중 올바른 것을 고르시오* ① SEO가 가능하다..
23.12.15 코틀린 끝? fun show menu 안을 println("[ MENU ]") menuItems.forEachIndexed { index, menuItem -> println("${index + 1}. ${menuItem.name} | 가격: ${menuItem.price} 원 | 설명: ${menuItem.description}") } val maxNameLength = menuItems.maxOfOrNull { it.name.length } ?: 0 println("[ MENU ]") menuItems.forEachIndexed { index, menuItem -> val padding = " ".repeat(maxNameLength - menuItem.name.length) println("${index + 1..
23.12.14 키오스크4 인터페이스를 클래스로 바꾸는 법을 알아냈다! interface MenuItem { val name: String val price: Int val description: String fun displayInfo() } 이걸 오픈 클래스로 바꾸려면, open class TheMenu( override val name: String, override val price: Int, override val description: String ) : MenuItem { override fun displayInfo() { println("음식 이름: $name") println("가격: $price 원") println("설명: $description") } } 이녀석을 메뉴아이템으로 바꿔치면 된다! open cla..
23.12.13 키오스크3 오늘은 먼저 오픈 클래스를 만들어 클래스들을 상속하려고 해봤는데, 먼저 부모를 정한게 아니라 나중에 추가하려고 해서인지 잘 되지 않고 계속 오류가 떠서 굉장히 고생했다. 그래서 우선 난잡한 클래스들을 정리하기 위해서 버거, 드링크 클래스를 버거메뉴, 드링크 메뉴에 집어넣었다. class Burger( override val name: String, override val price: Int, override val description: String ) : MenuItem { override fun displayInfo() { println("버거 이름: $name") println("가격: $price 원") println("설명: $description") } } 이녀석을 버거메뉴 안으로 옮기고 cl..
23.12.12 키오스크 2 어제에 이어서 오늘은 클래스를 만들고, 그 클래스들이 작동해서 메뉴를 가동시키고 메인파일은 중계만 하도록 만들어 본다! 버거메뉴 클래스 파일을 이렇게 만든다. class BurgerMenu { companion object { val menuItems = arrayOf( "와퍼 | W 8.0 | 불에 직접 구운 순 쇠고기 패티에 싱싱한 야채가 한가득~ 버거킹의 대표 메뉴!", "불고기와퍼 | W 8.0 | 불에 직접 구운 순 쇠고기 패티가 들어간 와퍼에 달콤한 불고기 소스까지!", "치즈와퍼 | W 8.6 | 불에 직접 구운 순 쇠고기 패티가 들어간 와퍼에 고소한 치즈까지!", "통새우와퍼 | W 8.8 | 불맛 가득 순쇠고기, 갈릭페퍼 통새우, 스파이시토마토소스가 더해진 프리미엄 버거!", ) } fu..
23.12.11 키오스크 만들기 오늘은 키오스크를 만드는 과제를 수행하게 됬다! 역시 시작은 뭘해야할지를 몰라서 굉장히 막막했지만, 어쨋든 해보기로 했다. 어짜피 겉모습만 흉내내는거니 어떻게든 될것이다. 우선 제목?을 println("========================================") println(" 버거킹에 오신걸 환영 합니다! ") println("========================================") 이렇게 메시지를 출력시킨 뒤 1번을 누르면 버거, 2번은 음료, 3번은 종료, 그리고 예외처리를 집어넣으라는 요구사항이 있었기 때문에 try catch를 이용해 1,2,3 외의 숫자를 입력하면 다시 입력하라는 메시지가 뜨도록 해봤다. while (true) { try { println(..