
업로드 jsp파일 업로드 현재 이미지 파일과 사진설명 text자료를 form으로 post형태 전송 ImageController.java @PostMapping("/image") public String imageUpload(ImageUploadDto imageUploadDto, @AuthenticationPrincipal PrincipalDetails principalDetails){ if(imageUploadDto.getFile().isEmpty()) { throw new CustomValidationException("이미지가 첨부되지 않았습니다.", null); } imageService.사진업로드(imageUploadDto, principalDetails); return "redirect:/use..
react에서 입력받은 데이터를 springBoot로 넘겨보자 react의 Signup.js import axios from "axios"; import React, { useState } from "react"; import { Button, Form } from "react-bootstrap"; const Signup = () => { // form의 변경된점을 저장하기위한 state const [form,setForm] = useState({email:"",password:"",name:"",gender:""}) // form안의 입력 데이터가 변경될때마다 발동되어 값을 실시간으로 바꿔줌 const handleChange = (e) =>{ setForm({ ...form, [e.target.name..

스프링 컨테이너 스프링에서 아파치는 사용되지않고 전부 톰켓에서 관리되기때문에 아파치는 없다고 생각하고 request가 오게되면 web.xml에서 받아 Dispatch Servlet에서 컴포넌트 스캔을 하게된다 Dispatch Servlet에서의 주역할은 주소분배가있는데 이때 주소에맞게 보낼려면 메모리에서 주소에 대한 데이터를 찾아야한다 그러므로 주소분배 전에 src폴더에서 자바파일들이 메모리에 떠야한다 이 자바 파일들이 메모리에 뜰려면 new하여 stact에 저장되어야하는데 stack에 저장되는 데이터들은 static가 아니라 생겼다 사라졌다하는 객체 형태이다 그럼 모든 자료들을 static으로 하면 안되나요? 안됩니다 static로 하게되면 서로 공유되기때문에 충돌이 무조건 발생하게 될것이고 그렇담 객..
Socket 운영체제가 들고있는 것이고 A와 B가 통신을 하고싶다면 Socket을 통해서 주고받게된다 A에서 5000번 포트를 열게되면 B에서 A로 통신을 하고싶다면 ip:5000으로 요청을 보내면된다 여기서 문제는 C가존재한다 가정할때 C가 A로 통신하고싶을때 연결할 방법이 없게된다 이를 해결하기위해 A에서 5000이란 포트는 연결의 용도로만 사용이되고 열결이되면 5001이라는 소켓이 열려 B와 연결이되게된다 즉 5000으로 연결을 받고 지정한 socket으로 통신을 하게됌 스래드 형태로 운영이되는데 스래드 형태가 아니라면 5000번에서 계속 요청을 받지 못하게된다 5001번과 새로운 5002번 포트도 모두 스래드 형태이다 스래드란 타임스탬프를 쪼개서 동시 동작하게 만들어줌 근대 여기서 문제는 소캣이 ..
JPA(Java Persistence Api) persistence란 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 말함 RAM은 휘발성 데이터를 저장이 가능 즉 컴퓨터가 종료되면 데이터가 사라짐 그래서 하드디스크에 영구적 저장이되도록 기록하게되는데 이런 하드디스크에 저장하는것을 persistence라고 한다. 자바에서 데이터를 저장할때 하드시크에 저장되긴하지만 파일시스템이 다르다 DBMS API(Aplication programing interface) Aplication 프로그램, programing 프로그래밍, interface 인터페이스 인터페이스란 프로토콜이 있고 인터페이스가 있는데 프로토콜과 인터페이스는 어떤 약속을 뜻하게 되는데 둘의 약속은 다르다 예를 들어 A..
spring Framework 틀이 제공되고 그 틀에 맞게 프로젝트를 만들도록 인도해주는것을 framework라고한다 오픈 소스 소스가 공개되어있다 그말은 즉 spring의 소스를 우리가 수정할 수 있다는 뜻이된다. Ioc(Inversion of controll)컨테이너 [제어 역전] class = 설계도 object = 실체화가 가능한 것 instence = 실체화 된 것 abstract class 라는 추상클래스가 있고 누누라는 object를 생성하기 위해선 class(설계도)를 참조하여 만들게된다. 근데 이때 object는 모두 추상적이다 무슨말이냐면 누누가 될수도있고 케이틀린이 될 수 있기때문 그리고 만들어진 캐릭터는 instence가 된다. 제어 역전이란? 오브젝트를 생성해서 s라는 변수로 he..

페이스북 OAuth(Open Auth) 등록하기 구글에서 페이스북 개발자 센터 검색후 해당 페이지 들어가보자 페이지이동 후 오른쪽위 시작하기를 눌러 회원가입을하자 회원가입이 완료되었다면 페이스북 API 콘솔에서 애플리케이션 등록 방법 페이스북 개발자 센터 접속 후 로그인 My Apps -> 앱 만들기 기타 선택후 다음 유형 : 소비자 선택 앱 이름, 이메일, 비지니스 계정 설정 후 앱 만들기 방금 생성한 앱 대시보드에 접속 후 앱에 제품 추가하기에서 Facebook 로그인 선택 플랫폼 : 웹 선택 사이트 URL에 http://localhost:8080 넣어주고 save 설정 -> 기본설정에서 앱 ID와 앱 시크릿 코드를 저장 왼쪽에 설정의 기본 설정 눌러보면 위와같은 정보가 보일것이다. 이제 yml파일에..

AOP(Aspect Orientied Programing)관점 지향 프로그래밍 관점지향 프로그래밍 + 객체지향 프로그래밍 로그인 기능과 회원가입 기능이 있다고하자. 로그인 기능 - 유효성 검사, 보안처리 메인 기능( username과 password를 잘 받아야하고. DB에 존재하고 일치하는지 확인 ) 후처리 로그 시간남기기 회원가입 기능 - 유효성 검사, 보안처리 메인 기능( username password등 여러 데이터를 받고 DB에 insert되게된다. ) 후처리 로그 그럼 두 개의 기능을 보았을 때 공통점이 어디에 있나요? 메인을 제외하고 전과 후가 똑같습니다. 그림으로 표현하면 이러하다 이때까지 에러처리를 함수마다 각각 걸어주었지만 모두 전과 후가 같으니 에러처리해주는 코드를 어디다 저장을하고 ..
댓글도 유효성 검사를 추가하기위해 Valition을 작성해보자 CommentApiController.java @PostMapping("/api/comment") public ResponseEntity commentSave(@Valid @RequestBody CommentDto commentDto,BindingResult bindingResult,@AuthenticationPrincipal PrincipalDetails principalDetails){ if(bindingResult.hasErrors()) { MaperrorMap = new HashMap(); for(FieldError error : bindingResult.getFieldErrors()) { errorMap.put(error.getFie..
댓글을 이제 DB에서 가져와 보여줘야하는데 우리가 스토리에 게시물을 가져올때 Image를 가져오고있으니 Image에 댓글을 추가해주자 Image.java @JsonIgnoreProperties({"image"}) @OneToMany(mappedBy = "image") // 연관관계의 주인이 아니다 명시 private List comments; 위와같이 추가해주고 image는 가져올 필요도없고(이미 가져왔으니) 무한참조가 생길께 뻔하니 Ignore해주자 이번엔 하나의 이미지에 여러 댓글이 담길수있다 Image가 주이니 OneToMany가 되게된다. 편하게 생각할려면 양방향 매핑때는 무조건 주에 OneToMany라고 기억하자 mappedBy = "image"의 뜻은 우선 Comment의 필드를 보면 @Joi..