본문 바로가기

내일배움캠프

(57)
[TIL] 나의 스물 여덟번째 회고록 error message : Required request parameter 'id' for method parameter type Long is not present 게시판 비밀번호 체크기능을 구현하다가 위의 에러가 발생하였다. 파라미터도 넘긴 id값이 Controller로 넘어가지 않는다는? 아니면 null값이라는? 말 같다. form태그에서 submit을 통해 파라미터 id값을 넘기는데 넘어가지 않는 듯 하다. 에러 관련 정리할 내용 HTML에서 form태그를 통해 method가 POST로 전송이 되었고 따라서 @RequestParam으로 값을 받을 수 있다 GET 메서드, @GetMapping을 통해 localhost:8080?userId=1234&name=username 과 같은 형태로 전송되어..
[TIL] 나의 스물 일곱번째 회고록 오늘은 게시판 프로젝트를 수정해보면서 Tymeleaf를 처음 접하게되었다. 현재 타임리프를 사용하여 form태그로 비밀번호 일치 확인하는 로직을 작성하고 있는데 생각보다 쉽지 않아서 골머리를 싸고있다. 그래도 Thymeleaf를 사용함으로서 코드가 확실히 줄어들고 한눈에 알아보기 쉬워서 유용하게 쓸 것 같다. Thymeleaf란? '템플릿 엔진'의 일종. html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있다. Thymeleaf 문법 대부분의 html 속성을 th:xxx 로 변경할 수 있다. ex: th:text="${변수명}" 표현 설명 예제 @{ ... } URL 링크 표현식 th:href="@{/css/bootstrap.min.css}" th:href="@{/{itemId}..
[WIL] WIL 다섯번째 회고록 이번주에는 알고리즘 + Spring Boot를 활용하여 게시판을 만들어보는 작업을 했다. 게사판을 만들어보면서 가장 인상 깊었던 것이 JPA로 DB접근이 굉장히 수월해졌다는 것이 놀라웠다. JPA란? JPA는 자바 진영에서 ORM기술 표준으로 사용되는 인터페이스의 모음이라고 한다. 그렇다면 ORM은 무엇인지 궁금해졌다. ORM(Object-Relational Mapping) 우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면된다. 왜 JPA를 사용해야 할까? JPA는 반복적인 CRUD SQL을 처리해준다. JPA는 매핑된 관계를 이용..
[내배캠] 스물 여섯번째 회고록 스프링(Spring)에서 자주 사용하는 Annotation 개념 및 예제 정리 Annotation은 클래스와 메서드에 추가하여 다양한 기능을 부여하는 역할을 한다. Annotation을 활용하여 Spring Framework는 해당 클래스가 어떤 역할인지 정하기도 하고, Bean을 주입하기도 하며, 자동으로 getter나 setter를 생성하기도 한다. 특별한 의미를 부여하거나 기능을 부여하는 등 다양한 역할을 수행할 수 있으며, 이러한 Annotation을 통하여 코드량이 감소하고 유지보수하기 쉬우며, 생산성이 증가된다고 한다. Spring의 대표적인 Annotation @Component 개발자가 생성한 Class를 Spring의 Bean으로 등록할 때 사용하는 Annotation입니다. Spring..
[내배캠] 나의 스물 다섯번째 회고록 [문제] 정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요. import java.util.Arrays; import java.util.stream.IntStream; class Solution { public int[] solution(int[] array) { int[] answer = new int[2]; answer[0] = Arrays.stream(array).max().getAsInt(); answer[1] = IntStream.range(0, array.length) .filter(i -> answer[0]==(array[i])) .findFirst() .orElse(-1); return answ..
[내배캠] 나의 스물네번째 회고록 👉문제 ) STUDENT 테이블에서 s1 수강생을 삭제했을 때 EXAM에 있는 s1수강생의 시험성적과 MANAGER의 managerA가 관리하는 수강생 목록에 자동으로 삭제될 수 있도록 하세요. ALTER, DROP, MODIFY, CASCADE 를 사용하여 EXAM, MANAGER 테이블을 수정합니다 답안) ALTER TABLE EXAM DROP CONSTRAINT exam_fk_student_code; -> EXAM 테이블의 exam_fk_student_code 컬럼에 관하여 CONSTRAINT(무결성 제약조건) 삭제 ALTER TABLE EXAM ADD CONSTRAINT exam_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(stude..
[내배캠] 나의 스물세번째 회고록 프로그램 개발을 하다 보면 다양한 오류가 발생할 수 있다. Java에서는 오류가 발생하면 어떤 오류인지를 개발자에게 알려줘서 오류를 처리할 수 있도록 기능을 지원해 준다. ​Java에서의 예외는 크게 Error, RuntimeException, OtherException, 3가지의 종류가 존재한다. 이들에 대해서 알아보도록 하자. 먼저 Error이다. ​Error는 메모리 부족(OutOfMemoryError), 스택오버플로우(StackOverFlowError)처럼 자바 가상 기계(JVM)나 하드웨어 등 시스템의 문제로 발생하는 것을 의미한다. ​즉, 개발자가 처리할 수 있는 영역이 아니기 때문에 Error가 발생하면 프로그램을 종료시키는 것이 보통이다. ​ 다음으로 Exception이다. ​Error와 ..
[내배캠] 나의 스물두번째 회고록 2. 변수, 변수의 Type * 변수란? - 변수는 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름이며, 변수를 통해 프로그램은 메모리 번지에 값을 저장하고 읽을 수 있다. * 변수 명명규칙 - 변수 이름은 첫번째 글자가 문자여야 하며, 중간부터는 문자, 숫자, $, _를 포함할 수 있다. - 첫번째 문자를 소문자로 시작하되 캐멀 스타일로 작성하는 것이 관례이다. * Camel스타일 - 코드를 작성할 때 여러단어를 혼합하여 명명하는 경우, 낙타의 등 처럼 대소문자가 섞여있도록 작성하는 스타일 - 자바 소스 파일명(클래스명)은 대문자로 시작하는 것이 관례 - 변수명은 소문자로 시작하는 것이 관례 * 변수의 선언 - 변수의 선언은 저장되는 값의 타입과 이름만 결정한 것 -> 메모리에 할당 된 것은 아..