분류 전체보기 562

[Python] 반올림함수 round | (사사오입, 오사오입)

1. 사사오입 : 4 이하면 버림, 5 이상이면 올림 2. 오사오입 : 5 미만의 숫자는 버림, 5 초과의 숫자는 올림 5일때 처리해주는 방식이 사사오입 방식과 다르다. 5의 앞자리가 짝수 -> 버림 5의 앞자리가 홀수 -> 올림 흔히 파이썬에서 쓰는 round 함수는 오사오입 방식이다. round 함수로 사사오입 방식을 구현하려면? 해당 값이 양수이면 0.5를 더해주고 음수이면 0.5를 빼주면 된다. 왜 위처럼 해야하는 지 이제부터 상세하게 설명해보기! 오사오입 방식은 5의 앞자리수가 짝수일 때 버린다. 이를 해결하기 위해 0.5를 더해주고 빼주는 것이다. 예시를 들면 사사오입 방식대로 2.5를 반올림하면 3이 나와야한다. 하지만 오사오입 방식에서는 2가 나온다. 왜냐하면 5의 앞자리 수가 짝수이기 때..

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

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를 올린 기억이 없고 무엇보다..

[코테 입문서 추천] 코딩 테스트로 시작하는 파이썬 프로그래밍!

개발자로 취업을 하기 위해서는 이제 필히 준비를 해야하는 프로세스 바로 코딩테스트..! 작년부터 코딩테스트를 준비해왔지만, 학교 수업, 과제, 자기소개서 작성 등으로 인해 계속해서 우선순위가 밀려나게 되었고 결국 많은 시간을 투자하지 못했습니다. 또한, 쌩독학으로만 백준 사이트에서 문제를 풀다보니 처음에는 입출력하는 부분도 낯설어서 익숙해지는 데 시간이 꽤나 걸렸어요 그리고 무엇보다도 꾸준하게 풀어내는 게 힘들었어요! 올해안에 취업을 하는 게 제 목표이기도 하고, 올해는 기필코! 코딩테스트에 발목 붙잡히지 말자라는 생각에 "코딩테스트로 시작하는 파이썬 프로그래밍" 책을 읽게 되었습니다. 이 책에는 25가지 기출문제 상세코드와 연습문제가 수록되어 있습니다. 그래서 연습문제로 확실하게 이해했는지 체크해볼 수..

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

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

[Coding Test] 시간 복잡도 총정리!

입력의 최대 크기와 알고리즘의 시간 복잡도를 보고 수행 시간을 어림짐작할 수 있어야 한다고 해요! 알면서도 매번 코드 구현만 하던 나 자신 반성하며,, 이번 기회에 시간 복잡도에 관련된 내용을 정리하는 포스팅을 해보려고 합니다 ! 알고리즘 시간복잡도는 주로 빅오 표기법을 사용해서 표기합니다. O < (1) < O(logn) < O(N) < O(nlogn) < O(n^2) < O(n^3)

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

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

[Python] 입출력 관련 모음집

1. 특수 문자 출력하기 He says "It's really good life!"를 출력하려면 \를 이용해야 합니다. 출력하고 하는 문자 앞에 \를 붙여주면 됩니다. print("He says \"It\'s really good life!\""); 2. 두 줄 출력하기 (1) \n 이용하기 print("Hello\nWorld!") (2) print문 이용하기 print("Hello") print("World") 3. 공백 또는 구분자 사용하여 출력하기 (1) 공백을 사이에 두고 출력하기 : 쉼표 이용 print(3,5) (2) 구분자 사용하기 : sep 이용 print(3,5,sep=":") 4. 출력 형식 (1) 변수 포맷 (%d, %s, ..)과 %를 사용한다. %s : 문자열 %c : 문자 %d ..

[스프링부트] 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 ..