안녕하세요 오늘은 Spring 프레임워크에서 사용하는 매개변수 타입에 대해 알아볼게요. 이 포스팅은 잘 정리된 다른 분의 글이 있어서 가져왔습니다. - 머루의 개발 블로그- 컨트롤러 메서드의 파라메터 타입 이 포스팅의 출처는 머루의 개발 블로그입니다. 오늘 소개할 내용은 Spring의 Controller에서 사용할 수 있는 파라미터 타입들을 알아보도록 하자. . Spring에서 Controller로 받을 수 있는 파라미터들이 다양한 타입들이 존재하는데 이는 Object 혹은 어노테이션등으로 선언하면 자동으로 Spring이 그에 맞게 변환해주고 있다. 다 알아볼 수 는 없겠지만 자주 사용하는 부분 위주로 최대한 많이 살펴보도록 하자.필자의 경우에는 Controller에서 servlet API를 거의 사용하..
안녕하세요 강정호입니다. 오늘은 스프링의 HandlerMethodArgumentResolver에 대해서 알아볼게요 HandlerMethodArgumentResolver HandlerMethodArgumentResolver 인터페이스의 역할은 컨트롤러에서 파라미터를 바인딩 해주는 역할을 한다. 예를 들어 특정 클래스나 특정 어노테이션등의 요청 파라미터를 수정해야하거나, 또는 클래스의 파라미터를 조작 혹은 공통적으로 써야하는 파라미터들을 바인딩 해주는 역할이다.아래 소스를 보며 설명 드릴게요. 위의 코드에서 보면 @GetMapping으로 파라메터를 받는다. 하지만 ServerInfo 파라메터는 뷰 페이지로부터 받은 파라메터가 아니다. 그럼 어디서 받은 것일까?? ServerInfo 클래스는 다음과 같이 구성..
Spring Bean Container 안녕하세요 오늘은 스프링 빈 컨테이너에 대해서 알아보겠습니다. 스프링 빈 컨테이너 역할 - 스프링 객체를 관리한다 : 컨테이너가 스스로 객체를 생성한다 1) @ComponentScan : @Component가 붙은 클래스들을 읽어서 객체로 생성한다2) @Bean : @Bean을 이용하여 개발자가 생성하는 코드를 작성한다. Java Configure - 이전 버전의 스프링에서는 XML로 설정을 하였으나, 현재 스프링 버전에서는 어노테이션으로 지원한다. 그렇다면 우리가 메인 실행파일에서 보는 @SpringBootApplication이란 무엇일까?웹 어플리케이션을 실행할 때 자주 보지만 그 의미에 대해서는 깊이 생각한 적이 없었다. @SpringBootApplicatio..
Spring Boot를 이용한 개발 준비 - JDK 8을 설치 : java -version - Maven or Gradle 빌드도구 설치 : Intellij에 내장되어 있다. 설치를 안해도되지만 설치하는게 편리함1) Maven - CoC(Convention over Configuration) : 이미 정해져 있는 폴더, 빌드 규칙에 따라 빌드 해주는 것. 2) 메이븐이든 그래들이든 디렉토리 구조는 동일하다. - Git 설치, Github 계정 생성. - Intellij : https://www.jetbrains.com/idea/download/ - Spring Boot 프로젝트 생성- https://start.spring.io/ : Spring 프로젝트 사이트- Intellij1) Open : 인텔리제이..
객체 지향 프로그래밍 Bus b= new Bus(); --> Bus 인스턴스를 Heap 메모리에 올라간다Bus : 레퍼런스 타입b : 참조변수 레퍼런스Bus() : 생성자객체지향 : 메모리에 올라가 있는 인스턴스를 객체라고 한다. 어떤 객체는 1개만 필요한 것도 있고, 여러개가 필요할 수 있다.- 초보자 : 객체가 아니라 클래스에 대해 집중한다. 라이브러리 vs 프레임워크차이 : 사용 주체가 누구인가?1. 라이브러리 : 내가 다른 사람이 작성한 클래스를 사용.2. 프레임워크 : 내가 만든 코드를 다른 주체가 사용하는 것.- Spring Framework : 스프링이 나의 코드를 사용해서 어플리케이션을 구동한다. 디자인 패턴- 객체 생성, 구조, 행위에 대한 내용을 정리한 것- UML : 클래스와 클래스간..
Java, Spring 학습 로드맵 [Spring을 공부하기 전에 알야할 지식]- Java ( JDK 8) : JDK 8 기본 문법은 알고 있어야한다 - Servlet / JSP : JEE 웹 프로그래밍1. 서블릿 : 라이프 사이클, 서블릿이 제공해주는 객체2. JSP : EL과 JSTL을 공부하기3. WAS : Servlet/ JSP를 구동할 수 있는 Mini WAS를 만들어볼 필요가 있다.(미니 서블릿, 정적 DATA) - SQL, DB1. DBMS : 데이터베이스 설치하고 연동하는 것에 대해서 알아야함.2. 데이터베이스 기본 이론3. JDBC 프로그래밍 : DB 프로그래밍. [Spring 학습]- Spring Core : DI, AOP, Bean 컨테이너 개념 - Spring MVC : Web 개발..
1. ubuntu 한글 버전 설치- $ vi Dockerfile : Dockerfile 생성. - Docker 파일에 코드입력 : https://goo.gl/xd1rz2 이곳에서 도커파일 관련 코드 복사해서 붙여넣고 wq! - $ docker-machine restart : 도커 머신을 다시 시작 - $ docker build --tag ko_ubuntu:latest ./ : 이렇게해서 최신 우분투 버전 가져온다 - !! 데몬 뭐시기 나오면 : eval $(docker-machine env 이미지이름) 실행 - $ docker images : 새로 생긴 ko_ubuntu 이미지를 확인할 수 있다. - $ winpty docker run -it --name ko_ubuntu ko_ubuntu //bin//..
docker container를 실행하기 위한 환경Docker란 무엇인가?도커는 로컬 노트북, 데스크탑에 별도의 운영체제를 설치할 수 있는 공간을 만드는 가상화 머신이다. 이 가상화 머신은 자기만의 IP 주소를 가지고, 여러 운영체제를 설치할 수 있다.1. Docker Tool Box 설치링크 : https://docs.docker.com/toolbox/toolbox_install_windows/설치 : 윈도우 운영체제는 DockerToolbox.exe를 실행한다. 디폴트 설정으로 인스톨 하면된다 내 노트북에는 D 드라이브->Programfiles 폴더에 Toolbox를 설치하였다.명령어docker-machine : 물리적인 가상화 PC를 제어할 때 사용하는 명령어docker : 해당 가상 머신 안에서 ..
회원과 질문간의 관계 매핑 및 생성일 추가1. Question 객체와 User 객체 관계 매핑User 관점: User 1명은 여러개의 Question을 할 수 있다. --> @OneToMany 관계Question 관점 : 반대로 Question은 여러개이면서 1개의 User와 맵핑된다 --> @ManyToOne Question 클래스는 User 객체를 멤버변수로 가지면서 @ManyToOne 관계를 맺는다.@JoinColumn(foreignKey = @ForeignKey(name = "fk_question_writer")) : Question에 참조되어 있는 User 아이디를 외래키로 가진다.2. LocalDateTime 이용하여 질문 일시 작성하기LocalDateTime 객체를 다음과 같이 Questio..
@OneToOne 관계 레시피의 데이터 테이블 관계도 @Entity : 엔티티 클래스임을 지정하여 데이터 테이블과 맵핑된다.@Id : 해당 필드 변수를 PK로 지정한다.@GeneratedValue(strategy = GenerationType.IDENTITY) : 주키의 값을 이한 자동 생성전략을 명시하는 것에 사용된다. 선택적 속성으로 generator과 strategy가 있다. strategy = GenerationType.IDENTITY는 DB의 identity 컬럼을 이용한다는 것이다.@Lob : 긴 String 컨텐츠를 저장할 때 사용하는 어노테이션이다. @OneToOne(cascade=CascadeType.ALL) : 1대1 관계를 맵핑하고 삭제될 때 같이 삭제되는 것을 뜻한다.
[원격 서버에 배포하기] 1. AWS EC2 Linux 인스턴스 생성 : https://jojoldu.tistory.com/259?category=635883- 이 부분은 크게 차이가 없다. 2. EC2에 MySql 설치하기- $ sudo yum install mysql- $ mysql -u 계정 -p -h Host주소 : 계정은 모두 소문자이고 Host 주소는 AWS RDS 대쉬보드에서 확인하기- $ show databases; : 이것을 치고 들어가면 내가 생성한 데이터베이스가 보여야 성공 3. Java, Git 설치하기 현재(2018.01.14) EC2가 Java7이 기본버전이라 Java8로 버전업하겠습니다.AWS EC2에 접속하셔서 아래 명령어를 실행 합니다.sudo yum install -y j..
[코드 리팩토링] [객체에게 일을 많이 시키자] 보통 로그인시에 비밀번호를 비교할 때는 다음과 같이 get 메서드를 사용하여 비밀번호를 반환함.if(!password.equals(user.getPassword())){ System.out.println("Login fail"); return "redirect:/users/loginForm"; }하지만 이렇게 하면 비밀번호를 가져오고 비교하는 작업 2개를 해야한다.이 작업을 한 번에 하기 위해서는 User 객체에 matchPassword() 라는 메서드를 만든다.-- User 클래스 --public boolean matchPassword(String newPassword){ if(newPassword==null){ return false; } return ..
[자기 자신만 개인정보 수정할 수 있도록 하기]@GetMapping("{id}/form") public String updateForm(@PathVariable Long id, Model model, HttpSession session){ if(HttpSessionUtils.isLoginUser(session)){//개인정보 수정시 로그인 하지 않았을 때 막는 코드 System.out.println("미로그인 상태입니다. 로그인해주세요"); return "redirect:/users/loginForm"; } User sessionedUser=HttpSessionUtils.getUserFromSession(session); if(!sessionedUser.matchId(id)){ throw new Ille..
[로그인 상태에 따른 메뉴처리] 로그인 폼에서 유저 아이디와 비밀번호를 Post 방식으로 전송하여 Controller에서 받았다 [Controller]@PostMapping("/login") public String login(String userId, String password, HttpSession session){ User user=userRepository.findByUserId(userId); if(user == null){ System.out.println("Login fail"); return "redirect:/users/loginForm"; } if(!user.matchPassword(password)){ System.out.println("Login fail"); return "red..
[자동 배포]- Travis를 이용한 자동배포- S3 bucket에 파일들을 업로드 하는 방법.(Travis CI, S3를 이용한 자동 배포 : https://jojoldu.tistory.com/265?category=635883 ) language: java jdk: - openjdk8 services: - mysql branches: only: - master cache: directories: - '$Home/.gradle' before_install: - mysql -e 'CREATE DATABASE IF NOT EXISTS drinkit;' - mysql -u root -e "CREATE USER 'jiwon'@'localhost' IDENTIFIED BY 'jiwon';" - mysql -u ..
1-1강 : Spring boot 로컬 개발환경 세팅1. 로컬 개발환경 세팅 - 프로젝트 생성 : Spring Starter Project 생성 - 프로젝트 이름 정하기 : my-slipp - Type : maven, package : jar - Group : net.slipp - Artifact : my-slipp - Package : net.slipp - 디펜던시 추가 : Web, Mustache(템플릿엔진), devtools --> pom.xml에서 확인이 가능하다. 2. 서버 시작 : application.properties 에서 server.port='포트번호' 변경하고 서버를 구동.3. LiveReload - 크롬 앱 LiveReload를 설치한다. - 역할 : STS에서 변경사항이 생겼을 때..
- Total
- Today
- Yesterday
- 파라메터
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 바
- Use case
- 관계대수
- docker
- 부동산공부
- 폭포수
- 깃허브
- 열반스쿨기초반
- 유즈케이스
- 내년은 빡세게!!
- Inception
- 깃
- 개발자 회고
- 도커
- 월급쟁이부자들
- Spring boot
- 2023년
- github
- 월부닷컴
- pop_back
- resize
- push_back
- front
- 재테크공부
- 인셉션
- 작성 방법
- GIT
- 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |