[Java] UUID (Universally Unique IDentifier)
·
Language/Java
📕 UUID란? 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규악 Univeraslly Unique Identifier의 약어이고 범용 고유 식별자라고 함 주로 분산 컴퓨팅 환경에서 사용되는 식별자 128비트의 숫자이며, 32자리의 16진수로 표현됨 8자리-4자리-4자리-4자리-12자리 패턴의 하이픈을 집어 넣어 5개의 그룹으로 구분 📕 UUID 사용 업로드된 파일명의 중복을 방지하기 위해 파일명을 변경할 때 사용 첨부파일 파일 다운로드시 다른 파일을 예측하여 다운로드하는 것을 방지하는데 사용 일련번호 대신 유추하기 힘든 식별자를 사용하여 다른 컨텐츠의 임의 접근을 방지하는데 사용 📕 Java에서 UUID 사용 Java에서는 무작위 랜덤 생성 버전인 UUID 4버전과 해쉬를 이용해 생성하는..
[프로그래머스 / Java] 명예의 전당
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 k일 까지는 그냥 낮은 값이 발표 점수이고 k일 이후부터는 배열정렬해서 찾으면 되지않을까 k가 score 배열의 길이보다 클 때와 작을 때도 있으니 그것도 체크 import java.util.Arrays; class Solution { public int[] solution(int k, int[] score) { int[] answer = new int[score.length]; // 명예의 전당 배열 설정 // 초기값 설정 int[] arr = new int[k+1]; int min = score[0]; arr[0] = min; answer[0] = min; if(k
[Java / Spring / JPA] 맵핑 어노테이션 @Entity, @Table, @Column, @Id
·
Framework & Library/Spring
객체 - 테이블 맵핑 : @Entity, @Table 필드 - 컬럼의 팹핑 : @Column 기본키의 맵핑 : @Id 조인 맵핑 : @ManyToOne, @JoinColumn 📕 @Entity 테이블과의 매핑 @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 불림 제약조건 필드에 final, enum, interface, class 사용불가 생성자 중 기본 생성자가 반드시 필요함 속성 Name - 엔티티 이름을 지정, 기본값으로 클래스 이름을 그대로 사용함 📕 @Table 엔티티와 매핑할 테이블을 지정 생략 시 매핑한 엔티티 이름을 테이블 이름으로 사용 속성 Name - 매핑할 테이블 이름을 지정 Catalog - DB의 Catalog를 매핑 Schema - DB 스키마와 매핑 Uniq..
[Java / Spring] Spring Security란?
·
Framework & Library/Spring
대부분의 애플리케이션에서는 회원관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. Spring에서는 Spring Security라는 별도의 하위 프레임워크를 제공하고 있다. Spring Security란? Spring기반 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크 Spring Security는 '인증(Authentication)'과 '권한(Authorization)'에 대한 부분을 Filter의 흐름에 따라 처리를 하고 있다. spring security는 filter 기반으로 동작하기 때문에 spring MVC 와 분리되어 관리 및 동작한다 > 보안관련 용어 정리 접근 주체(Principal) : 보호된 대상에 접근..
[Java / Spring] Spring Security 로그인 정보 가져오기 @AuthenticationPrincipal
·
Framework & Library/Spring
로그인한 사용자의 정보를 파라미터로 받아오고 싶을 때, Java 표준 Principal 객체를 받아서 사용한다. 하지만, Java 표준 Principal 객체는 name 정보만 참조할 수 있다. @AuthenticationPrincipal 어노테이션을 사용하면 UserDetailsService에서 Return한 객체를 파라미터로 직접 받아 사용할 수 있다. 인스타그램 클론코딩에서 UserDetailsService 인터페이스를 상속받아 구현체를 만들었다. @RequiredArgsConstructor @Service public class PrincipalDetailsService implements UserDetailsService { private final UserRepository userReposi..
[LOATODO] 로스트아크 오픈 API - 소나벨 vs 하누마탄 비교
·
Project/LOATODO
1. 서론찬란한 명예의 돌파석 가격이 감소하면서경이로운 명예의 돌파석 가격과 비슷해짐에 따라소나벨과 하누마탄의 수익이 어느정도 비슷할 꺼같아서 비교를 해보았다.각각 2수당 얻는 재료의 평균은 유튜브 영상을 참고하였다.  2. 개발2 - 1. DTO소나벨, 하누마탄 데이터를 각각 저장할 DTO를 만들었다.@Datapublic class SuppressionDto { private String nameData1; private Double countData1; private Double priceData1; private Double totalData1; private String nameData2; private Double countData2; private Double pric..
[LOATODO] 로스트아크 오픈 API - 거래소 데이터 가져오기
·
Project/LOATODO
1. 서론소나벨, 하누마탄 골드비교, 카던 보상 비교 등 데이터 비교를 만들 때,파괴석, 돌파석등 거래소에서 데이터를 구해서 비교하는 경우가 많다.하지만 아래 사진과 같이 API로 한번에 데이터를 가져올 때 10개씩 밖에 가져오지 않아서 한번에 가져오는 메서드를 만들어보았다.   2. 개발2 - 1. 기존 CallMarketCategories 메소드 수정public JSONArray CallMarketCategories(int CategoryCode) { try { URL url = new URL("https://developer-lostark.game.onstove.com/markets/items/"); HttpURLConnection httpURLConnection = (Http..
[Spring / error] NullPointerException 에러 수정
·
Framework & Library/Spring
로스트아크 API를 이용한 기능 구현중 똑같은 기능을 하는 서비스 메서드를 구축했는데 유독 한쪽에서만 에러가 발생 @Controller @RequiredArgsConstructor public class SuppressionController { private static SuppressionService suppressionService; private static MarketApiService marketApiService; @GetMapping("/api/suppression") public String CallSuppression(Model model) { JSONArray result = marketApiService.CallMarketCategories(50000); //model.addAtt..
[정보처리기사] 필기 정리 - 1과목 소프트웨어 설계
·
정보처리기사
1. 소프트웨어 생명 주기(Software Life Ctcle) 소프트웨어 생명 주기는 소프트웨어 개발 방법론의 바탕이 되는 것으로, 소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다. 소프트웨어 생명 주기는 소프트웨어 개발 단계와 각 단 계별 주요 활동, 그리고 활동의 결과에 대한 산출물로 표현한다. 소프트웨어 수명 주기라고도 한다. 소프트웨어 생명 주기를 표현하는 형태를 소프트웨어 생명 주기 모형이라고 하며, 소프트웨어 프로세스 모형 또는 소프트웨어 공학 패러다임이라고도 한다. 소프트웨어 개발 생명주기 모델의 종류는 다음과 같습니다 주먹구구식 개발 모델 (Build-Fix Model) 폭포수 모델 (Waterfall Model) 원형 모델 (Prototyping..