여니의 프로그래밍 study 225

[Java] 연산자 (+증감 연산자, 비교 연산자, 논리 연산자)

목차 https://opentutorials.org/course/1223/5331 연산자 - 생활코딩 연산자란 연산자(演펴다연 算계산산 子, operator)란 특정한 작업을 하기 위해서 사용하는 기호를 의미한다. 작업의 종류에 따라서 대입 연산자, 산술 연산자, 비교 연산자, 논리 연산자 등이 있다. opentutorials.org 참고 서적 : 자바의 정석 연산자란? : 연산을 수행하는 기호를 의미한다. 연산자 (operator) : 연산을 수행하는 기호 피연산자 (operand) : 연산자으치 작업 대상 (변수, 상수, 리터럴 수식) 연산자의 종류 종류 연산자 설명 산술 연산자 + - * / % > 사칙연산과 나머지 연산 비교 연산자 > =

[Java] 데이터 타입 (+double형, float형 ), 형변환

목차 https://opentutorials.org/course/1223/5375 데이터 타입 - 생활코딩 데이터 타입은 조금 어렵다. 후속 수업에서 필수적인 선행지식은 아니지만, 또 뒤에 배치하는 것도 애매하다. 이번 토픽의 학습이 어렵게 느껴지면 다음 토픽으로 넘어가고 나중에 다시 학습하 opentutorials.org 데이터 타입 컴퓨터에 저장되는 정보의 가장 작은 단위 = bit 데이터 타입 데이터 종류 데이터 크기 논리형 boolean 1 byte 문자형 char 2 byte 정수형 byte 1 byte short 2 byte int 4 byte long 8 byte 실수형 float 4 byte double 8 byte 논리형 : boolean형의 기본값은 false이다. 문자 : char 타..

[Java] 숫자와 문자, 문자열

참고 링크 https://opentutorials.org/course/1223/5261 숫자와 문자 - 생활코딩 프로그래밍 입문자에게 가장 익숙한 데이터 타입(data type)은 숫자와 문자일 것이다. 이번 시간에는 실제로 가장 많이 사용되는 데이터 형인 문자와 숫자를 프로그래밍에서는 어떻게 표현하고 연 opentutorials.org 이번 프로젝트를 수행하면서 자바에 대해 두루뭉실하게 알고 있던 부분을 집고 넘어가야겠다고 생각했다. 그래서 정리가 잘 되어 있는 생활코딩이라는 사이트를 주메인으로 잡고 추가적으로 학습해야 하는 내용은 따로 조사해서 첨부할 예정! 문자와 문자열 문자 -> 작은 따옴표 ( +큰 따옴표도 가능) 문자열 -> 큰 따옴표만 가능 문자열 안에 큰 따옴표 넣는 방법 \를 큰 따옴표 ..

[스프링부트] 개발하며 만난 에러 기록집 ( = 계속 업데이트 될 예정)

1. AWS S3 버킷 : Access Denied 에러 com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: ~~~~; S3 Extended Request ID https://eboong.tistory.com/543 [AWS S3 버킷] Access Denied 오류 해결 com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Re..

[AWS S3 버킷] Access Denied 오류 해결

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: ~~~~; S3 Extended Request ID: ~~~~ 클래스명 수정을 해야해서 해당 작업을 진행한 후, 제대로 기능이 동작하는 지 전체적으로 점검을 하던 중에 만나게 된 에러입니다. 분명, 얼마전까지만 하더라도 작동이 잘 됐었는데 처음 뜬 오류를 보고 이번에도 내가 뭔가 실수를 했구나!?라고 생각했죠.. 부랴부랴 구글링을 해보니 API Key가 노출되어 접근이 막혔다네요..!? 하지만 전 깃허브 어디에도 API Key를 올린 기억이 없고 무엇보다..

[MySQL] Workbench에서 제약사항 추가하기

회원 탈퇴 시, 해당 회원과 외래키로 연결되어 있는 다른 테이블의 데이터는 유지하는 방법을 찾아보았다. 외래키에 적용할 수 있는 제약사항은 총 4가지가 있다. (참고로, on delete , on update 옵션 각각 선택할 수 있다) 1. RESTRICT : 개체(회원 테이블) 변경/삭제 시, 다른 개체(게시글 테이블)가 해당 개체(회원 테이블)를 참조하고 있을 경우, 해당 개체의 변경/삭제는 제한된다. 2. CASCADE : 개체(회원 테이블) 변경/삭제 시, 다른 개체(게시글 테이블)가 해당 개체(회원 테이블)를 참조하고 있을 경우, 모든 개체(회원 테이블의 개체, 게시글 테이블의 개체)가 변경/삭제된다. 3. NO ACTION : 개체(회원 테이블) 변경/삭제 시, 다른 개체(게시글 테이블)가 ..

[스프링부트] "JWT 토큰"과 세션 기반 인증의 차이점

로그인 구현 방식 로그인 구현 방식에는 세션 방식과 JWT 토큰을 사용하는 방식이 있습니다. 일단 세션 방식에 대해 먼저 알아보겠습니다. 세션 방식이란? : 세션은 서버의 메모리에 생성되는 저장 공간입니다. 바로 이 저장공간에 로그인한 유저의 정보가 저장됩니다. 사용자가 로그인을 하게 되면 서버는 쿠키에 세션ID를 실어서 브라우저에게 보냅니다. 세션 방식을 사용하는 이유가 뭘까요? 일단 HTTP 프로토콜의 특징을 이해해야 합니다. Stateless (무상태 프로토콜) : 어떠한 이전 요청과도 무관한 각각의 요청을 독립적인 트랜잭션으로 취급하는 통신 프로토콜이빈다. 즉 서버에 세션 상태가 없는 상태를 의미합니다. Stateless 구조는 서버의 response가 클라이언트와의 세션 state와 독립적입니다..

[스프링부트] Error parsing HTTP request header

게시글 수정을 하는 테스트를 진행하던 도중 위와 같은 에러가 떴습니다. 찾아보니 http를 https로 써서 나타나는 문제라고 하여 아래 부분을 수정 후 다시 테스트를 진행했습니다. 그런데도 오류가 나서 자세히 살펴보니.... /api/v1이 아닌 /api/vi로 작성을 했더군요.. 컨트롤러에 적혀있는 주소랑 다르게 적혀 있어서 오류가 났나 봅니다 ㅠ.ㅠ

[스프링부트] PostsApiControllerTest.java (조회기능) + h2 데이터베이스 콘솔 사용법

h2 웹 콘솔을 사용하기 위해서는 application.properties에 아래 옵션을 추가해줍니다. spring.h2.console.enabled=true 그런 다음에 main 메소드를 실행시켜줍니다. 그러면 톰캣이 8080 포트로 실행됩니다. http://localhost:8080/h2-console로 접속하면 웹콘솔 화면이 등장합니다. JDBC URL에는 jdbc:h2:mem:testdb로 작성해줍니다. Connect 버튼을 클릭하면 현재 프로젝트의 h2를 관리할 수 있는 페이지로 이동합니다. POSTS 테이블이 정상적으로 나타나는 것을 확인할 수 있습니다. 조회하는 방법은 SELECT * FROM POSTS; select문을 입력해줍니다. 만약 현재 등록된 데이터가 없다면 insert into ..

[스프링부트] PostApiController Test 작성 (게시글 수정 기능)

Posts.java update 부분에 쿼리가 없는 이유는 JPA의 영속성 컨텍스트 때문입니다. 영속성 컨텍스트란? : 엔티티를 영구 저장하는 환경으로 일종의 논리적 개념입니다. JPA의 핵심 내용은 엔티티가 영속성 컨텍스트에 포함되어 있느냐 아니냐로 갈립니다. 만약 트랜잭션 안에서 데이터베이서에서 데이터를 가져오면? 이 데이터는 영속성 컨텍스트가 유지된 상태입니다. 이 상태에서 해당 데이터의 값을 변경하면 트랜잭션이 끝나는 시점에 해당 테이블에 변경분을 반영합니다. 즉, Entity의 값만 변경하면 Update 쿼리를 따로 해줄 필요가 없어지빈다. 이 개념을 더티 체킹이라고 합니다. PostsRepository.java PostsUpdateRequestDto.java dto는 Entity의 필드 중 일..