본문 바로가기

전체 글

(47)
[Spring boot] 자주 쓰는 어노테이션 어노테이션(Annotation) 이란? 자바 소스 코드에 메타 데이터 (유용한 정보) 를 추가할 때 사용되는 키워드로 다음 역할 수행 컴파일러를 통한 문법 체크 빌드 시 코드 필요한 코드 자동 생성 런타임 시, 특정 기능 실행하도록 정보 제공 Config @Configuration: 해당 클래스가 스프링의 설정 클래스임을 명시. @Bean 어노테이션이 적용된 메서드를 포함. @Bean: Spring Container 의 Bean 으로 등록할 때 사용. Bean 이름은 메서드명으로 등록됨. @Configuration 과 함께 사용. @Component: 해당 클래스를 Bean 으로 등록. 반환된 객체를 Bean으로 등록하는 @Bean과 달리 클래스를 Bean 으로 등록. @Service, @Reposito..
[Java] 자주 사용하는 코딩테스트 문법 1. String String str = "apple"; // 길이 반환 str.length();// 5 // 빈 문자열 체크 str.isEmpty();// false // 문자 찾기 str.charAt(0);// 'a' 문자 반환 str.indexOf("p");// 처음 발견되는 인덱스 반환(1), 찾지 못할 경우 -1 반환 // 문자 자르기 str.substring(1,3);// "pp" str.substring(3);// "app" // 문자 바꾸기 str.replace('p','');// "ale" str.replaceAll(".","/");// "/////" 정규식에 맞춰 문자 치환 ("." 은 모든 문자 의미) str.replaceAll("[^a-z]", "") // a~z까지를 제외한 나머지..
[Spring 프로젝트] 전적검색 구현 요구사항 RIOT 에서 제공하는 API 사용 API KEY 값 공유되지 않도록 설정 Json 기반의 API 를 자바 객체로 역직렬화 검색시 최근 10게임 전적 표기 다음 필드 조회 및 커스터마이징 소환사 정보 (닉네임, 레벨, 티어, 승/패) 표기 플레이한 챔피언, 승/패, 경기 시간, KDA 미리보기 1. 소환사 정보 조회 1.1 사용 API: https://developer.riotgames.com/apis#summoner-v4/GET_getBySummonerName Riot Developer Portal developer.riotgames.com 1.2 SummonerDTO.java: 소환사 정보 조회시 사용되는 객체 //SummonerDTO.java import com.fasterxml.jacks..
[Spring 프로젝트] 라이엇 API 분석 요구사항 RIOT 에서 제공하는 API 사용 다음 정보를 조회하기 위한 API 분석 소환사 정보 (닉네임, 레벨, 티어, 승/패) 표기 최근 10 게임 플레이한 챔피언, 승/패, 경기 시간, KDA 미리보기 1. Riot API 인증키 신청 1.1 Personal API KEY 신청 https://developer.riotgames.com/ Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and reliable way. This is just part of our ong..
[Spring 프로젝트] 스프링부트 jar 배포 (EC2, RDS, 고정 IP, FileZila) 배포 환경 프로젝트: Java 17, Spring boot 3.16 AWS EC2 (Amazon linux) , RDS (MYSQL) 고정 IP 사용 (과금 요소) CI/CD 인프라 구축이 아닌 단순 EC2 배포 putty 를 통한 원격 서버 접속 Git 방식이 아닌 FileZila를 통한 파일 전송 1. EC2 생성 1.1. 인스턴스 생성 AMI: Amazon Linux 인스턴스 유형: t2.micro (프리티어) 1.2 인바운드 규칙 설정 외부에서 EC2 로 접근할 때 사용되는 방화벽 규칙 설정 유형 프로토콜 포트범위 소스 사용자 지정 TCP TCP 8080 0.0.0.0/0 Anywhere-IPv4 SSH TCP 22 내 IP HTTP TCP 80 0.0.0.0/0 Anywhere-IPv4 HTTP..
[Spring boot] JPA 칼럼명과 언더바 1. JPA 언더바 자동변경 JPA 는 카멜 표기법 또는 파스칼 표기법을 사용하는 테이블명, 칼럼명을 언더바로 연결된 이름으로 자동 매핑한다. 엔티티의 칼럼명을 myColumn 또는 MyColumn 으로 작성할 경우 my_column 으로 매핑을 시도한다. 2. 해결방법 1) 프로퍼티 설정에서 언더바 자동변경 관련 설정 추가 // application.properties // 언더바 자동변경 방지 spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl spring.jpa.hibernate.naming.physical-strategy=org.hibernate...
[Spring 프로젝트] 프로젝트 설계 3일차 기능 명세서 구분 기능명 HTTP routes 요구사항 유저 회원가입 폼 GET /member/signup 회원가입 클릭시, 회원가입 페이지로 이동 유효성 검사를 위한 폼 클래스 ID: 3~25 길이, 필수항목 비밀번호: 필수항목 비밀번호2: 필수항목 이메일: 필수항목, 이메일 형식 검증 회원가입 완료 POST /member/signup ID, 비밀번호, 이메일을 입력받아 회원가입 @Valid 기반 폼 유효성 검사 ID, 이메일 중복 체크 비밀번호 확인 검증 admin 유저 추가하는 테스트 작성 로그인 폼 GET /member/login 로그인 클릭시, 로그인 페이지로 이동 로그인 완료 POST /member/login 스프링 시큐리티 세션 기반 로그인 로그인 실패시 오류 메시지 표기 일반 유저일시, USER 권한 ..
[GIT] GitHub 저장소 특정 파일의 커밋 기록 제거 1. 문제 .gitignore 가 반영이 되지 않은 채로 민감정보가 포함된 application-db.properties 가 push 됐다. 커밋 기록은 그대로 두고 application-db.properties 의 커밋 기록만을 제거하고 싶었다. 2. 해결방법 다음과 같이 Git 에 내장된 filter-branch 로 데이터를 삭제할 수 있다. # 불필요한 파일과 커밋 제거 $ git filter-branch -f --index-filter "git rm --cached --ignore-unmatch [파일경로/파일명]" --prune-empty -- --all # 원격 저장소 push $ git push --force --all 경로가 포함된 예시 $ git filter-branch -f --inde..