[SpringBoot] @OneToMany, @ManyToOne, @ManyToMany 연관 관계 매핑, @JoinTable
·
Framework/SpringBoot
@OneToMany @OneToMany 어노테이션은 하나의 엔티티와 다른 엔티티간의 일대다 관계를 매핑하는데 사용됩니다. 일대다 관계에서는 하나의 인스턴스가 다른 엔티티의 여러 인스턴스와 연결됩니다. @Entity public class Department { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "department", cascade = CascadeType.ALL) private List employees = new ArrayList(); } @Entity public class Employee { @Id @GeneratedValue..
[SpringBoot]스프링 시큐리티란? (Spring Security)
·
Framework/SpringBoot
스프링 시큐리티란? Spring Security는 자바 기반 웹 애플리케이션을 위한 보안 서비스를 제공합니다. Spring의 보안을 위한 표준 라이브러리로 사용됩니다. 스프링 시큐리티가 제공하는 기능은 다음과 같습니다. 인메모리 사용자 하나를 포함하는 AuthenticationManager 빈 사용자 이름은 user이고 암호는 콘솔에 출력됩니다 /css 나 /image 같은 공용 정적 리소스 위치를 위해 무시되는 경로, 다른 모든 엔드포인트에 대한 HTTP 기본 인증 스프링의 ApplicationEventPublisher 인터페이스로 게시되는 스프링 이벤트 자동 생성되는 기본 로그인 페이지 사용 예시 @Configuration @EnableWebSecurity public class SecurityCon..
[React] JSX와 자바스크립트 표현식
·
Framework/React
JSX란? 리액트에서 컴포넌트는 자바스크립트 함수로 작성합니다. 이 함수의 반환값은 HTML 값입니다. 이처럼 자바스크립트와 HTML태그를 섞어서 사용하는 문법을 자바스크립트 XML 즉, JSX라고 합니다. JSX는 공식 자바스크립트 문법은 아니지만, 리액트 공식 문서의 예제로도 사용될 만큼 많은 리액트 개발자가 사용합니다. JSX와 자바스크립트 표현식 JSX 문법을 이용하면 HTML태그에서 자바스크립트 표현식을 직접 사용할 수 있습니다. Body.js import React from "react"; function Body(){ const name = 'react' return ( body {name} ); } export default Body; App.js import React from "reac..
[React] npm 으로 yarn 설치 & yarn으로 react 설치
·
Framework/React
node, npm 버전 확인하기 cmd에 node -v 와 npm --version 을 입력하여 node와 npm이 설치되어 있는지 확인합니다. yarn install npm install -g yarn 을 입력하여 yarn 을 설치하고 yarn --version 으로 버전을 확인하여 잘 설치 되었는지 확인합니다. yarn 으로 react install yarn global add create-react-app 으로 create-react-app 을 설치합니다. 그 후 create-react-app 프로젝트명 을 입력하여 해당 프로젝트에 리액트 앱을 생성합니다. cd로 생성한 디렉토리로 이동 후 yarn start를 입력하면 생성한 리액트 앱이 실행됩니다! react-router-dom 설치 yarn a..
[Node.js] Node.js 설치하고 자바스크립트 파일 실행하기
·
Framework/Node.js
이 글은 node.js 공식 문서를 참고하여 작성되었습니다. Node.js란? Node.js란 또 하나의 자바스크립트의 런타임입니다. Node.js 가 없을 때에는 자바스크립트의 유일한 런타임은 웹 브라우저 입니다. 하지만 Node.js 로 인하여 독립적인 런타임이 생기게 되었고 어떤 환경에서도 자바 스크립트를 실행할 수 있게 되었습니다. Node.js 설치하기 https://nodejs.org/ko 먼저 위 사이트에서 좌측 버튼을 클릭하여 node.js를 다운로드 해주세요. Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 셋업 위자드를 실행 시키시고 Next를 누르다보면 필요한 tool을..
[SpringBoot] AnnotationException: targets an unknown entity named : 조인 맵핑 시 데이터 타입이 다를 경우 발생하는 에러
·
Framework/SpringBoot
에러 메세지 Caused by: org.hibernate.AnnotationException: Association 'org.coteis.domain.article.Article.algorithmNo' targets an unknown entity named 'java.lang.Integer' 발생 배경 @ManyToOne @JoinColumn(name = "algorithm_no") private Integer algorithmNo; @ManyToOne @JoinColumn(name = "difficulty_no") private Integer difficultyNo; @ManyToOne @JoinColumn(name = "language_no") private Integer languageNo; @M..
[SpringBoot] CommandAcceptanceException : table명이 예약어일 때 발생하는 Exception
·
Framework/SpringBoot
발생 배경 resource 의 data.sql 파일에 값을 넣고 실행하니 CommandAcceptanceException 이 발생하였다 중략 맨 마지막 SQLSyntaxErrorException을 보고 문법이 잘못되었나 싶었는데 그건 아니었다. 원인 파악 CommandAcceptanceException에 대해 검색해보니 원인은 다양했다 하이버네이트가 table을 만들 때 drop하지 못해서 계정의 권한으로는 할 수 없는 쿼리를 작성해서 SQL이나 H2의 예약어를 사용하여 Entity를 작성해서 나는 1번 사항에는 해당하지 않았다 하이버네이트가 table을 drop 하는 것은 확인되었기 때문이다. 2번 사항도 user 테이블 말고 다른 table에 insert하는 데에는 오류가 발생하지 않았기 때문에 해당..
[React] 리액트 앱 생성하고 실행하기
·
Framework/React
리액트 앱 생성하기 1. 먼저 리액트를 실습할 폴더를 만들어주세요. 이 때 폴더 이름은 너무 길거나 대문자가 포함되어 있으면 안됩니다 ㅠㅠ 2. vscode 터미널 창에 npx create-react-app . 을 입력하세요 .을 입력하면 현재 디렉터리에 리액트 앱이 생성되고, 디렉터리 이름을 따로 입력하셔도 됩니다. +) npx 는 node package execute의 약자로 노트 패키지 실행이라는 명령입니다. Happy hacking 이라는 문구까지 확인하면 reactstudy 폴더에 뭔가 되게 많이 생겼을겁니다. create-react-app 으로 생성한 리액트 앱 또한 Node.js 패키지 입니다. 따라서 폴더 아래에 package.json, package-lock.json, node_modul..