이번에는 작성한 작성한 게시글의 상세보기 페이지를 만들어 볼것이다. /freeboard에서 게시글 목록이 나오면 그 중 하나의 제목을 클릭하면 /freeboard/detail/{boardId}로 이동하고 그 글의 제목, 내용, 작성자 작성일 등 여러가지 상세 정보를 readonly로 보여주려고 한다. 1. freeboard.html freeboard.html을 다시 한번 보는 이유는 상세보기를 누를 때 해당 게시글의 boardId가 필요하기 때문이다. 게시글의 목록에서 제목에 하이퍼링크로 /freeboard/detail/{boardId}를 보낸다. URL에 boardId를 보내서 boardId로 해당 글에 대한 정보를 찾을 수 있도록 했다. 2. PostController.java @PathVariabl..
백엔드
토이프로젝트를 진행하던 중 get방식으로 글작성하는 페이지를 랜더링 하던 중 에러가 발생했다. 여러가지 에러중에 타임리프 경로에 관한 에러도 있었기 때문에 경로를 올바르게 변경해줘도 오류가 떠서 구글링을 해봤다. 현재 내 Posting Form의 html 코드와 PostController코드이다. 작성 controller의 /freeboard/posting 경로로 들어오는 post방식의 값을 postDTO로 전송하고있다. @GetMapping("/posting") public String getBoardWrite() { return "board/postwrite"; } 나는 단지 페이지를 랜더링하기 때문에 아무거도 안보내줘도 되고 해당 form에 대한 html코드가 있는 경로만 잘 매칭시켜주면 된다고 생..
React와 Node.js공부를 시작했는데 처음부터 에러와 마주쳐버렸다... 아래의 사진은 Codespaces 에서 실습 중 Thunder Client로 API요청을 보낸 상황이다. 사진과 같이 Post로 요청을 보냈을 때 401 Unauthorized 오류가 떴다. 해당 오류 Status code 401(Unauthorized) 오류는 리소스에 접근할 자격이 없다는 뜻이다. 그래요청이 deny당한 것이다. 구글링 결과 API Key를 잘못 적용했거나 권한이 없다고해서 권한도 줘봤지만 해결되지 않았다. 나느 군대에서 Codespaces와 Gitpod으로 코딩을 하고 있기 때문에 여기서 포트를 열면 Private or Public 으로 열리게된다. Default는 Private로 열리기 때문에 요청 갈수가..
스프링 시큐리티를 활용하여 회원가입 로직을 짜고 회원가입 테스트코드까지 작성해서 테스트코드가 통과하는것을 확인 했다. 이후 실제로 폼에 들어가 회원가입을 해보니 값을 입력하고 submit을 하니 Valid error로 값을 못받아왔다고 떴다. 난 분명 값을 다 보내주고 타임리프 문법도 확인해봤는데,, 그래서 컨트롤러에서 값을 찍어봤더니 실제로 값을 못받아 오고 있었다.아래 두 사진은 나의 컨트롤러와 회원가입 폼이다. 로직에는 문제가 없는 것 같아 값을 받아오는 객체인 ModelAttribute쪽에 문제가 있는 것 같았고 구글링을 해보던 중 안주형님의 블로그 글을 찾게 되었다.https://dkswnkk.tistory.com/457 [Spring] @RequestParam, @RequestBody, @Mo..
군대에 처음 들어올 때 세웠던 목표 세가지가 있었다. 목표를 꼭 이루기 위해 블로그에서도 적어놨었다. 그중에 가장 이루고 싶었고 무조건 이루고 나가야겠다고 다짐했던 첫번째 목표인 백준 solved.ac 티어 플래티넘을 달성했다. 이전에는 프로그래밍을 거의 해보지도 않았고 알고리즘이라고 했을때 단순 입출력 받아서 처리하는게 알고리즘인줄 알았다. 지금 생각하면 약간 부끄럽다..ㅎ 이 생각을 군대 들어오기전까지 가지고 있었으니까 얼마 지나지 않은 과거이다. 개발자를 진로로 삼아야겠다는 다짐을 군대 오기 약 3달전에 했으니 그럴수도 있나? 여튼 전공은 컴퓨터공학과지만 진로를 잡은 시기가 늦어 그만큼 남들을 따라잡기 위해 스스로 꾸준히 했다. 문제가 안풀리면 짜증나지만 풀렸을 때 희열감이 미치겠다. 희열감 없었으..
0. 대표적인 어노테이션 이름 설명 @Controller 해당 클래스가 Controller임을 나타내기 위한 어노테이션 @RequestMapping 요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션 @RequestParam Controller 메소드의 파라미터와 웹요청 파라미터와 맵핑하기 위한 어노테이션 @ModelAttribute Controller 메소드의 파라미터나 리턴값을 Model 객체와 바인딩하기 위한 어노테이션 @SessionAttributes Model 객체를 세션에 저장하고 사용하기 위한 어노테이션 @RequestPart Multipart 요청의 경우, 웹요청 파라미터와 맵핑가능한 어노테이션(egov 3.0, Spring 3.1.x부터 추가) @Co..
1. 개요 자바의 입력 함수 중 Scanner와 BufferedReader를 알게되었는데 Scanner에서는 그냥 사용하지만 BufferedReader를 사용할 때에는 항상 함수의 매개변수 옆에 throws IOException을 써줬다. Input Output에 관한 예외처리인 것 같았지만 확실히 알고싶어 함수를 뜯어보고 검색해서 찾아봤다. 1. BufferedReader import java.io.InputStreamReader; import java.util.Scanner; public class Study { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Inp..
1. 개요 관심 분야를 백엔드로 정하면서 스프링을 공부해보고싶다는 생각이 들었다. 하지만 스프링을 공부하기 위해서는 자바를 알아야하기 때문에 평소 알고리즘도 C++로 풀었지만 이제부터는 자바로도 같이 풀어보려고한다. Java로 알고리즘을 풀으려고 하니 입출력이 너무 어려웠다. Scanner, BufferedReader, tokenizer 등등 그래서 자바를 천천히 공부해보기로 결심하고 입출력부터 정리해보려고 한다. Java Study Start!! 입력 1. Scanner & BufferedReader import java.io.InputStreamReader; import java.util.Scanner; public class Study { public static void main(String[] ..
https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 1. Logic - 주어지는 문자열의 갯수가 최대 50이니 시간복잡도를 계산해 봤을때 각 자리수에서 1씩 증가하며 뒤에 붙히고 팰린드롬을 확인하는 최악의 경우의 수를 생각해도 50 * 50 * 50 정도일 것이라고 생각해서 2초안에 충분히 돌 수 있다고 판단함. > 전부 확인해 보기 - str[0]부터 1씩 증가해가며 str의 뒤에 붙히고 팰린드롬인지 확인하기 2. Code #include using ..
App() 이 실행하게 되면 rendering 과정을 거치게 되면서 counter에 0을 넣고 rendering onClick() 함수가 연결 된 button을 클릭하게 되면 이전counter와 현재 counter의 참조 값을 비교해서 참조값이 다르면 rerendering. 2. State Function .state function을 사용하는 방법에는 2가지가 존재한다. 1. 값을 직접 전달하는 방법 setCounter(counter + 1) --> 2. 함수를 전달하는 방법 setCounter((current) => current + 1) --> 확실한 현재값을 전달해 줄 수 있음 공부한 내용을 바탕으로 이해한 것을 그대로 적은 공부일기장입니다! 틀리거나 잘못 이해한 부분이 있다면 지적해주시면 감사하..