일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#boj#16932#모양만들기
- 백준#BOJ#8012#한동이는영업사원
- 백준#BOJ#1939#중량제한
- 백준#boj#12755
- 백준#BOJ#2615#오목
- 백준#BOJ#12865#평범한배낭
- Today
- Total
목록나의 개발 메모장 (36)
순간을 성실히, 화려함보단 꾸준함을

안녕하세요 오늘은 JPA 주제로 글을 써보도록 하겠습니다. 테이블들간 연관관계를 설정해 줄때 일대다(1:N) 관계일때 @JoinColumn 어노테이션을 사용해서 해당 컬럼의 이름을 설정해줍니다.... 근데!!! 전 지금껏 이 @JoinColumn 의 역할에 대해서 너무 오해하고 있었습니다...ㅠㅠ 소스를 통해 설명하도록 하겠습니다. @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name="member_id") private Long id; @NotEmpty private String name; //Embedded type 은 사용자가 직접 정의한 값 타입이다. 여기서 Embedded type을 사용하지 않으면,집 주소에..
안녕하세요. 오늘도 역시 토이 프로젝트를 진행하다가 발생한 문제점을 가져와서 해결했던 점을 포스팅 해보도록 하겠습니다. 먼저 구조부터 설명하자면, 현재 로그인 기능을 구현하기 위해서 HttpSession 에 회원의 정보들을 담을려고 합니다. 그리고 이 session에 담긴 '권한'으로 이 회원이 어디까지 '인가'될 수 있는지 판단해 주는 로직을 구현하려고 하는 중입니다. 맴버 Entity package boomrabbit.logintest.mvc.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.HashMap; import java.util.Map; @E..
김영한님 강의를 듣고 난 후 코드를 작성하고 실행시켰더니 이런 에러메세지가 출력이 되었다. 재미난 부분인데 왜 이런 메세지가 출력이 되는 것 일까? 먼저 코드부터 살펴보자 package jpabook1.jpashop.api; import jpabook1.jpashop.domain.Member; import jpabook1.jpashop.service.MemberService; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import ..
스프링부트를 사용하여 개발할때 우리는 의존성 주입을 위해 @RequiredArgsConstructor를 사용합니다. 이때 굉장히 반드시 알고 가야될 개념이 있습니다. 바로 final키워드를 사용한 인스턴스들만 Bean 객체로 등록을 한다는 것 입니다. final 키워드를 사용하지 않고 사용하면 NullPointerException 이 발생합니다. (이점을 반드시 알아두고 기억하시길 바라고 다음 내용으로 넘어가겠습니다) 추가로 더 알아보면 @RequiredArgsConstructor를 왜 사용하는 것일까요???? 우린 의존성 주입(Dependency Injection) 을 사용해서 Bean 객체로 등록된 아이들에게 제어의 역전(Inversion of control) 을 수행하게 됩니다. (의존성 주입과 제..
JPA 를 사용하다보면 가끔 기본적인 개념조차 암기하지 않고 난방하는 경우가 생기는데 절대 이러지 말자!! 중요한건 기본기!! 제목과 같은 오류 메세지를 가끔 확인할 수 있는데 저 오류 메세지의 원인은 간단하다. @Entity,@Embeddable 어노테이션을 사용하면 이 클래스는 테이블과 매핑할 클래스라는 것을 명시해준다. 이때 반드시 기본 생성자(no-arg constructor) 가 필수적이다. 그러니 @NoArgsConstructor 어노테이션을 붙여주던가 아니면 기본생성자를 입력해주자. @Embeddable @NoArgsConstructor //첫번째 방법 public class Address { private String city; private String street; private Str..
@Transactional 어노테이션은 스프링 프래임워크를 사용할때 굉장히 편리함을 제공해 줍니다. 비지니스 로직 동작에 따라서 데이터베이스에 이를 반영해 줄때, 트랜잭션 처리를 자동으로 수행해 줍니다. begin 과 commit 을 자동적으로 수행해줍니다. 예외 발생시,rollback을 자동적으로 수행해줍니다. @Transactional 어노테이션을 사용할때 주의할 점이 있는데, 바로 junit 환경에서는 @Transactional 을 사용하면 테스트가 끝날때 자동으로 Rollback 이 됩니다. 그래서 쿼리 로그가 보이지 않게 되는 것 입니다. 보통 application.yml 에 분명히 format_sql: true 로 설정해주었음에도 불구하고 쿼리가 안보이는 현상이 발생할 수 있을텐데 @Trans..

이클립스에서 웹 공부를 하다가 이런 오류가 발생해서 에초에 톰캣을 돌리지도 못했던 현상이 있었습니다. 이런 오류가 발생하는 이유는 "포트의 번호의 충돌" 입니다. 그럼 왜 충돌이 일어나는 것인지 생각해볼 필요성이 있겠죠. 가장 유력한 원인은 데이터베이스의 포트번호와 같기 때문일 수 있습니다. 즉, 오라클 mysql 등 데이터베이스의 포트번호도 8080 톰켓의 포트번호도 8080 이면 충돌이 발생해서 저런 오류가 뜨는 것 입니다. 그럼 해결 방법은 크게 두가지 입니다. 1. 톰켓의 포트번호를 바꾸던가(coding-factory.tistory.com/13) 2. 오라클(mysql 등)의 포트번호를 바꾸던가(이 글에서 다뤄보도록 하겠습니다.) 1번은 블로그들 글이 많습니다. ㅎㅎㅎ 전 오라클의 포트를 변경해보..
안녕하세요.폭발토끼입니다. 이번 글은 그냥 정말 그냥 쓸데없고 아침부터 센치해져서 적는 뻘글입니다. 제 글들을 제 블로그를 몇명이나 방문해주시고 도움을 얻어가실지 모르지만 조금이나마 위안을 주고 싶어 적습니다. (그렇다고 저가 엄청난 실력을 가지고 있는 것도 아닙니다. 정말 못합니다.....ㅎㅎ) 정말 이제 막 알고리즘을 시작하시는 분이나 너무너무너무너무 힘들어하시는 초보분들을 위한 글입니다 많은 분들이 '알고리즘 문제 해결'에 관해 어려움을 겪습니다.(저 또한 마찮가지 입니다) 어렵죠.정말 어렵습니다. 고등학생때 수학문제 푸는 것도 힘들어 죽었는데 알고리즘 문제를 풀고 있는 모습이 아이러니 할 정도로 힘들고 고통스러운 시간입니다. 다른 사람은 몇분만에 문제를 해결하고, 코드도 훨씬 간결하게 짜고, 나보..

이번글은 자바스크립트 공부하면서 이해가 안되었던 부분을 메모하고자 함. 그냥 내 머리가 안따라가서 메모하는 거임 getter와 setter 그리고 이것의 무한루프에 관한 이야기. class user{ constructor(firstName,lastName,age){ this.firstName = firstName; this.lastName = lastName; this.age = age; } } const user1 = new user('steve','job',-1); console.log(user1.age); 이런 코드가 있다. 그러면 당연히 출력은 -1이 출력이 된다. (굳이 캡쳐 안함) 그러나 우린 프로그램을 개발하는 입장에서 사용자가 중요한 정보를 함부로 건드리면 안된다.이를 위해 getter 와..
깃허브에서 repository 를 생성할때 READ.me 파일을 생성했기 때문에 이런 오류가 발생 해결방법 : 먼저 pull을 통해 현재 연결되어있는 깃허브 repository와 합쳐준후 그 다음에 push를 해주자. 그러면 해결 완료.

이 오류가 뜨는 이유는 mysql에서 user에게 권한을 주지 않아서 발생하는 오류이다. 방법은 간단하다. 권한을 주면된다.(필자는 mysql work-brench를 이용할 것) 1. Administration -> User and Privileges 를 선택한다. 2. 사용하고자 하는 user를 선택한 후 Administrative Roles 를 선택 그리고 DBA를 체크하면 모든게 체크된다. Apply를 선택하면 끝

※대략적인 설치 같은 건 다른 블로그를 통해서 따라하시는 걸 추천드립니다. 정리 잘 되어있는 블로그들 많습니당. 1.프로젝트를 생성해 줍니다. [Web] - [Dynamic Web Project] 를 선택해 줍니다. 2.서블릿을 만들어 줍니다. [src] - [오른쪽 마우스키 클릭] - [servlet] 선택 (package 와 class name은 본인들 마음대루~) 3.JDBC Driver(mysql-connector-java-8.0.22,jar)를 lib 폴더에 대입해줍니다 4. Driver, url, (mysql)유저 아이디, (mysql)유저 패스워드 설정 및 연결 package com.servlet; import java.io.IOException; import java.io.PrintWrit..