본문 바로가기
728x90
728x90

Study56

[Spring] form 태그와 JSON 형식을 이용한 요청 인텔리J 유료버전 기준으로 작성된 글 입니다 Java Version 11 [Spring] 스프링 부트 시작하기. Hello, World!와 이어지는 글입니다. @RequestParam 회원 가입을 할 수 있는 간단한 form을 만들고, 제출 그리고 이 form.html을 /form 이라는 url에 get요청이 들어올 때 보여주자. public class HelloController { @GetMapping("/") public String hello() { return "hello"; } @GetMapping("/form") public String form() { return "form"; } } 이렇게 작성 해준 뒤, 서버를 한번 껐다 켜준 뒤에 localhost:8080/form 접속 해보면, 위와.. 2023. 1. 4.
[Spring] 스프링 부트 시작하기. Hello, World! 인텔리J 유료버전 기준으로 작성된 글 입니다 Java Version 11 프로젝트 생성 인텔리J를 실행 시키고 New Project를 통해 프로젝트를 생성한다. 프로젝트 이름은 HelloWorld 이다. 왼쪽에 수많은 아이콘들이 있는데, 그중 Spring Initializr를 클릭하고 오른쪽과 같이 설정한다. 현재 사용하는 Java version은 11이다. 인텔리J 무료버전은 Spring Initializr가 지원하지 않는다. Spring Initializr를 통해 손쉽게 시작할 수 있다. Next를 누르면 최상단에 Spring boot version을 선택할 수 있는데, 3.0.0 버전 이상은 Java17 을 필요로 한다. 사용하는 Java version에 맞게 설정한다. 왼쪽에 여러 라이브러리들이 .. 2023. 1. 3.
[Java] 에러(Error)과 예외(Exception) 0. 목차 1. 개요 2. 오류 3. 예외 1. 개요 우테코 3주차 과제 수행 중 예외에 대한 공부의 필요성을 느끼고 책과 검색을 통해 알게된 내용을 정리해보려고 한다. JS만 거의 1년 가까이해서 뭔가 굉장히 낯선 부분인데, 우테코 슬랙채널을 보면 다른 언어를 하시던 분들도 다 비슷한 마음 인것 같다.. 현재 공부하는 책에서 예외처리에 대한 챕터를 딱하고 펼치니, 오류와 예외는 다릅니다. 라는 사실 부터 짚고 넘어간다. 일단 오류나 예외나 모두 클래스로 관리되고,둘 다 Throwable을 상속하기 때문에, 에.. 비슷한거 아닌가 싶은 느낌인데, 다르다니까 뭐가 다른지 확인을 해보자. 2. 오류 우선 오류는 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미한다. 이는 개발자가.. 2022. 11. 14.
[Java] enum type(열거 타입) 정리 0. 목차 1. 개요 2. enum type 1. 개요 그래도 약 1년간 프로젝트도 해보고, 코테준비도 했던 덕분인지 우테코 미션을 받았을 때 서비스 로직을 머릿속에 그리는 건 어렵지 않게 된다. 그런데 Java 기본 개념이 부족하다 보니, 서비스 로직을 코드로 옮기는 게 어렵다... 오늘은 쓰려고 할때마다 이거.. 뭐더라 하는 enum type 찢고 넘어가자. 2. enum type 데이터 중에는 몇가지의 한정된 값만을 갖는 경우가 있다. 뭐 예를들어 행정구역이라던가(서울, 부산, 대구 등등..), 계절이라던가(봄,여름,가을,겨울) 이런 애들을 enum type이라고 한다. 라는 식으로 되어있는 설명을 봤는데 뭔소리지 싶었다. 그냥 성질이 비슷한 상수(constant) 모아놓은 애라고 생각하면 된다. .. 2022. 11. 7.
[Java] MVC 패턴 그리고 domain, service 0. 목차 1. 개요 2. MVC 패턴 3. domain과 service 1. 개요 우테코지원 해야겠다 마음먹고, 이전기수 프리코스 내용 검색해서 찾아본적이 있었다. 이전기수 분들의 블로그 글들에서 공통적으로 보이던 것들이 OOP(객체지향), TDD(테스트 주도 개발), MVC 였다. 그때부터 조금씩 저 세가지 내용에 대해 틈틈히 블로그 글들을 읽으면서, 내가 프리코스를 할 때는 저 세가지 항목을 꼭 지키면서 해야지 라는 마음을 가졌었다. .. 물론 잘 못하고 있는 중이다. 더 잘하기 위해서 공부했던 내용 한번 정리 들어간다. 2. MVC 패턴 솔직히 한번도 안들어 본 사람은 없을거다. 나도 뭔지는 몰라도 들어본적은 있었으니까. MVC 패턴은 MODEL VIEW CONTROLL의 약자로 하나의 애플리케이.. 2022. 11. 5.
[Java] JUnit ParameterizedTest input 여러개 테스트 돌리기 0. 목차 1. 개요 2. 여러개 테스트 한큐에 돌리기(ParamterizedTest) 3. 그외에도 이것저것 1. 개요 프리코스 2주차 2일째. 고난과 역경의 TDD 하다가 input 여러개 넣고 한큐에 테스트 돌리는 방법 찾다가 알게된거 정리해볼려고한다. 2. 여러개 테스트 한큐에 돌리기(@ParameterizedTest) 예를 들어서, 인자로 받은 숫자가 짝수인지 아닌지 테스트하는 테스트 코드를 작성했다고 해보자. @Test void check_odd_test() { Integer input = 2; boolean result = isOdd(input); Assertions.assertThat(result).isTrue(); } input의 값을 2로 지정하고 테스트가 통과했다. 하지만 나는 나를 .. 2022. 11. 3.
[Java] TDD 톺아보기 수정과 지적 환영합니다. 막 대해 주세요. 0. 목차 1. 개요 2. TDD란? 3. 테스트 코드 작성 4. 정리 1. 개요 우테코 2주차 미션에 JUnit 5와 AssertJ를 이용하여 본인이 정리한 기능 목록이 정상 동작함을 테스트 코드로 확인한다 . 라는 내용이 추가되었다. JUnit 5와 AssertJ가 누구신지는 모르겠지만, 대충 TDD 해라 라는 내용인건 확실하다. 이렇게 말하면 내가 TDD에 대해 잘 알고, 잘하는 사람 처럼 보이겠지만 초면이다. 그냥 어디서 주워들은게 있다. 작업을 하기전에 TDD가 무엇인지, 어떻게 하는 건지 하나하나 톺아보려한다. 2. TDD란? TDD의 뜻은 Test Driven Development 의 약자이다. 소중한 우리말로는 테스트 주도 개발 이다. 음 항상 용.. 2022. 11. 3.
[Javascript] 10진수를 x진수로 변환하기(직접구현) https://kong-dev.tistory.com/111?category=982997 [Javascript] 3진법 뒤집기 문제설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하 kong-dev.tistory.com 이 문제 풀다가, 어 이거 직접 구현은 어떻게 하는 걸까 싶어서 구글링을 해봤는데 전부다 메서드랑 내장 함수만 알려주고 직접 구현한건 하나도 없다. 왠지 할 수 있을거 같아서 해봤는데 잘 된다. 이 글에선 진법변환 하는 메서드랑 내장함수는 안다룰 거다. 지천에 널린게 그건데 굳이 나까지... 아 그리고 10진수를 x진수로.. 2022. 1. 4.
소수판별하기 이거 소수판별이라고면 치면 나오는 내용이긴한데 한번 정리해두면 안까먹을거 같아서 정리해보려한다. 어떤 숫자가 소수인지 아닌지 판별을 할때는 2부터 그 숫자-1까지 하나하나 나누면서 조져보는 방법과 2부터 그 숫자의 제곱근 까지 하나하나 나누면서 조지는 방법이 있다. 코드로 보면 function checkPrime(number) { if(number === 1)return false; if(number === 2)return true for(let i = 2; i 2021. 12. 14.
call, apply, bind 삼총사 처음 나왔을 때 개념을 확실히 못잡은 채로 내비뒀더니 얘네가 나올때마다 '뭐더라..' 하면서 매번 다시 MDN을 뒤지게 된다. 우리집 시니어의 도움을 받아 지금 개념을 잡아놨으니, 까먹기 전에 정리를 해두자. this binding 쟤네를 이해하려면, 선결과제가 있다. this binding을 이해해야 한다. this는 this고 binding은 뭘까 묶다.감다. 약간 느낌이 온다. this binding은 this에다가 뭔갈 묶는 거구나. const cityinfo = { city: 'Seoul', weather: 'cold', }; function tellWeather() { return `today's ${this.city}'s weather is ${this.weather}'`; } console.. 2021. 12. 5.
내 애착 메소드 Array.from 으로 표 만들기 Array.from으로 표를 만들 수 있다. 사실 아니다. 배열인데 모양이 표 모양이다. 이걸 2차원 배열 이라고 한단다. 놀라운 배열의 세계. 내가 처음 본 코드는 const graph = Array.from(Array(n), () => Array(n).fill(0)) 이거였다. 길이가 n인 배열을 각 value에 길이가 n이고 value가 0인 배열을 만들겠다는건데.. [ [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0 ] ] n이 6이라 치면 이런 배열 만들겠다는 거다. 이걸 2차원 배열이라 하나봄 저 코드처음 봤을 때.. 2021. 12. 3.
Number() 와 parseFloat() 그리고 킹받는 8진법 책에 parseFloat() 가 나왔다. 내가 아는 애들 중에 비슷한 역할을 하는 애는 Number가 있다. 같은 걸까 다른걸까? https://tonks.tistory.com/136 [ 자바스크립트 ] Number() VS parseFloat() 최종 수정일 : 2016. 3. 17. Number() parseFloat() Number() parseFloat() Number() parseFloat() 참고로, 아래와 같이 작성한 경우에는, 오류가 나온다. var a = Number( 00.0001 ); var b = parseFloat( 00.000.. tonks.tistory.com 검색을 하던 와중에 여러가지 케이스를 두고 Number와 parseFloat를 비교해놓은 블로그를 발견했다. 이론적인게.. 2021. 11. 29.
프로토타입의 교체. 모던 자바스크립트 딥다이브의 19장 프로토타입 중에서 #9프로토타입의 교체에서 6페이지의 분량 전체 프로토타입 분량중에서도 1/10정도 되는 양이고 책 전체로 따지면 1.5% 정도 되는 분량일거다. 근데 나는 이걸 이해하려고 30분이 걸렸다.. 그치만 나의 빡대갈은 언제 또 까먹을지 모른다. 힘들게 이해한거 까먹기 전에 정리를 해보자 프로토타입의 교체 포로토타입은 다른 객체로 변경이 가능함. 즉 객체간의 상속관계를 변경할 수 있음 생성자함수 or 인스턴스에 의해 교체가능함. 생성자함수에 의한 프로토타입의 교체. //생성자 함수 const Person = function (name) { this.name = name; }; //객체 생성 const me = new Person('Lee'); console... 2021. 11. 29.
number사이에 string이 있어도 number다. 제목 어그로 지렸다. 유튜바 경력 어디안간다. https://kong-dev.tistory.com/23?category=982997 문자열 다루기 기본 문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 접근방법 kong-dev.tistory.com 또 이 문젠데 우리집 시니어가 이거 풀라면서 예외가 있으니까 잘 생각 해보랬다. function solution(s) { const arr = s.split(''); if (arr.length !== 4 && arr.length !== 6) { return false; } for (let valu.. 2021. 11. 24.
includes로 NaN을 확인 할 수 있을까? https://kong-dev.tistory.com/23?category=982997 문자열 다루기 기본 문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 접근방법 kong-dev.tistory.com 저 문제 정리하다가 갑자기 생긴 의문 배열에 NaN 이 있으면 includes로 찾을 수 있을까..? let arr = [NaN]; console.log(arr10.includes(NaN)); // true 정답은 찾을 수 있다. 쌉가능 어떻게 찾는 걸까 console.log(NaN === NaN); // false NaN은 자기자신과도 같기.. 2021. 11. 24.
타입변환 여기다 뭘 쓸까 했는데, 공부하다가 충격적인거 쓰면 될 듯하다. 코테 연습문제 풀고, 다른사람 풀이 보다가 알게 된건데, string 앞에다가 + 붙이면 number 로 바뀜 number + ''하면 string 으로 바뀜 엌ㅋㅋㅋㅋㅋㅋ const a = 1 + ''; const b = +'2'; console.log(typeof a, a); //string 1 console.log(typeof b, b); //number 2 우리집 시니어 개발자한테 물어봤더니 책에서 관련 내용 찾아주면서 읽어보라했당ㅎㅎ 타입변환에는 두가지 종류가 있다. 첫번째는 개발자가 의도적으로 타입을 변경하는 명시적 타입변환(explicit coercion) 두번째는 자바스크립트 엔진에 의한 자동변환인 암묵적 타입변환(implic.. 2021. 11. 22.
728x90
728x90