[트러블슈팅] java.sql.SQLSyntaxErrorException: Unknown column
·
Project 댕린이집
ERD 최종_진짜최종_진짜진짜최종.jpg 같은 느낌....이렇게 간단한 ERD를 5번이나 수정하고 있습니다..! 오늘은 도대체 어떤 문제 때문에 ERD를 또 수정했는지 기록해보도록 할게요.    1️⃣ 문제스프링부트에 MySQL을 연결해 회원가입 기능을 테스트 하던 도중 다음과 같은 에러가 발생했습니다. 2️⃣ 오류메세지java.sql.SQLSyntaxErrorException: Unknown column 'ue1_0.user_id' in 'where clause'DB에 컬럼이 없어서 SQL 명령어 실행이 실패 했다는 내용입니다. 3️⃣ 원인아무리 DB를 보고 Entity를 봐도 분명 해당 컬럼들이 다 작성되어 있는데 도대체 왜 컬럼이 없다는 거지? 하고 한참을 헤매었습니다.원인은 간단했는데요!바로 Li..
과일 장수 / 모의고사 / 소수 만들기 / 기사단원의 무기 / 소수 찾기
·
프로그래머스/1단계
1️⃣ 과일 장수 문제 설명 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들..
[보안/인증] CSRF로 인한 403에러
·
Project 댕린이집
API 서비스 (아이디 중복 확인 구현) 개발 후 테스트를 진행하던 중에 계속해서 403 오류가 났습니다. 이에 대한 해결 과정을 잊어버리기 전에 기록해봅니다. ⭕ build.gradle에서 Springboot version 3.2.1로 업그레이드 3.2.0의 고질적인 문제라고 하여 아래의 두 가지를 수정해주었습니다. build.gradle 파일에서 Springboot 버전 3.2.1 로 업그레이드 plugins { id 'java' // java 프로젝트로 설정 id 'org.springframework.boot' version '3.2.1' // 3.2.1 버전의 스프링 부트로 설정 id 'io.spring.dependency-management' version '1.1.4' // 스프링 부트의 의존..
[React] Register.js 아이디 중복 체크 구현
·
Project 댕린이집
Register.js 전체 코드 더보기 import React from "react"; import '../css/Register.css'; import Nav from "../components/Nav"; import { useState } from "react"; import axios from "axios"; let Register = () => { let [user,setUser] = useState({ userId : "", password : "", name : "", birth : "", email : "", phone : "", addr1 : "", addr2 : "" }); let dupIdCheck = () => { axios.post('http://localhost:8082/api/v..
[React] Login.js UI 구현
·
Project 댕린이집
오늘은 React로 로그인 UI 구현한 것을 기록하겠습니다. 회원가입 폼 대로 비슷하게 구현한 단순 UI이기 때문에 특별한 건 없네요..! 로그인 Login.js 컴포넌트 생성 pages 폴더 아래에 Login.js 컴포넌트 생성 css 폴더 아래에 Login.css 생성 import해주기 import React from "react"; import '../css/Login.css'; import Nav from "../components/Nav"; 로그인 폼 & 아이디, 비밀번호 입력할 input창 생성 class Login extends React.Component { render() { return ( 로그인 Login ) } } export default Login; 흔한 로그인 ui 이기 때문에..
[React] Register.js 회원가입 페이지 UI 구현
·
Project 댕린이집
시큐리티 공부+적용과 동시에 리액트로 각 페이지들 UI를 구현하려고 합니다. 회원관리 페이지들부터 구현해보겠습니다! 회원가입 Register.js 컴포넌트 생성 pages 폴더 아래에 Register.js 컴포넌트 생성 css 폴더 아래에 Register.css 생성 💻 Register.js 초기 코드 import React from "react"; import '../css/Register.css'; class Register extends React.Component { render() { return ( Register ) } } export default Register; 💻 Register.js 폼 작성 Register.js import React from "react"; import '../c..
추억 점수 / 명예의 전당(1) / 카드 뭉치 / 2016년 / 폰켓몬
·
프로그래머스/1단계
1️⃣ 추억 점수 문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. ..
API 명세서 작성하기
·
Project 댕린이집
1️⃣ API 명세서란? 백엔드 개발자가 설계한 API의 호출과 응답 관련 정보를 정리해 프론트 개발자에게 전달하는 문서입니다. 해당 문서를 바탕으로 프론트 개발자는 API의 사용 방법을 파악하고, 호출과 응답을 테스트하며, 서비스를 구현합니다. 2️⃣ API 명세서를 쓰는 이유? 백엔드는 API 문서가 있어야 기능을 정의하고 작업할 수 있고, 프론트엔드는 이를 바탕으로 백엔드에서 어떤 값이 올 지 알고 작업할 수 있습니다. 한 마디로 표준화된 API 명세서는 개발자 간의 협업을 촉진하고, 외부 개발자가 소프트웨어를 쉽게 이해하고 활용할 수 있게 합니다. 3️⃣ API 명세서 작성 도구 OpenAPI (Swagger), Postman, GitBook 등이 있습니다. 이러한 도구들은 가독성 높은 형식으로 ..
API와 Endpoint
·
Project 댕린이집
팀 프로젝트 때는 기능 명세서는 작성했었지만, API명세서는 작성해보지 않았습니다. 당시엔 굉장히 많은 것들을 이뤄냈고 경험했다고 생각했었는데 지나고나니 놓친 허점들이 정말 많다는 것을 느끼고 있습니다. 하지만 처음이니까요! 누구나 처음은 있으니까요. 그래서 이번 프로젝트에서는 API명세서도 직접 작성해보는 경험을 갖고자 합니다. 그 전에, API와 Endpoint를 정확히 짚고 넘어가려 합니다. 1️⃣ API 란? 먼저, API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. 프로그램 혹은 시스템 간의 통신하는 창구라고 할 수 있겠습니다. 클라이언트와 서버 사이의 데이터 전송 통신을 위한 규칙이나 방법이라고 생각하면 편할 것 같습니다. 2..
[Spring security] SecurityFilterChain
·
Project 댕린이집
📌 스프링부트 3.0 이상부터 시큐리티 설정 방법이 바뀌었습니다. Spring Boot 3.0 부터 Spring Security 6.0.0 이상의 버전이 적용되면서 아예 삭제되고 변경된 설정 방식들이 있습니다. 이전의 방식과 다른 점은 반환 값이 있고 Bean으로 등록한다는 점 입니다. SecurityFilterChain을 반환하고 Bean으로 등록함으로써 컴포넌트 기반의 보안설정이 가능해졌습니다. 1️⃣ 적용 방법 : Spring initializr에서 Spring Security 추가 Gradle과 Maven에 따라 다른데 제 프로젝트의 경우 Gradle 기반이라 해당 방법으로 시큐리티를 적용해주었습니다. Gradle implementation 'org.springframework.boot:sprin..
xoo | 수진