기술 창고(246)
-
사용자 패스워드 전송 및 보관 방법
보안은 개발자들이 가장 중요하게 생각하는 부분 중 하나이다. 현재 계정을 생성하고 이용하는 사이트들 중에서 보안을 중요하게 생각하지 않는 사이트는 거의 없을 것이다. 그중에서도 비밀번호에 대한 관리는 철저히 관리되어야 한다. 기본적으로 비밀번호를 관리하는 데에 있어서 가장 대표적인 방법은 암호화 / 복호화를 통해 관리하는 것이다. 다만, 암호화라는 것은 양방향성을 띄는 관리 기법이다. 즉, 암호화를 하게 된다면 반대로 복호화도 가능하다는 것이고, 이를 활용해서 해킹을 당할 수도 있는 것이다. 이러한 양방향성에 대한 문제점을 인식하고 보완하여 관리하는 방식이 단방향성의 해싱기법이다. 단방향 해싱 단반향 해싱은 원본 데이터를 입력하게 되면 완전히 다른 암호화된 데이터로 변환한다. 이 점은 기본적인 암호화방식..
2023.01.06 -
시간복잡도 / 공간복잡도
이름만 들으면 벌써부터 머리가 아파올 것이다. 시간, 공간이라는 단어가 주는 압박감에서부터 복잡도라는 키워드를 들으니 우선적으로 수학을 잘해야할 것 같은 느낌과 함께 어려운 개념이라는 느낌이 우선적으로 들기 때문이다. 차근차근 알아보자. 우선, 복잡도라는 개념은 개발자들이 구현한 알고리즘의 성능을 평가하기 위한 용도로써 기준이 되는 개념이라고 보면 될 것 같다. 그 중에서 중요하다고 생각되는 것이 시간복잡도, 공간복잡도이다. 복잡도라는 이름만 들어도 생각할 수 있는 것이 복잡도가 낮을 수록 좋은 알고리즘이라는 것이다. ※ 시간복잡도 시간복잡도는 특정 알고리즘이 수행되기까지 걸리는 시간 혹은 횟수를 의미한다. 같은 결과를 가지게 되는 여러 프로그래밍 코드에서도 작성 방법에 따라 걸리는 시간이 달라지며, 이..
2023.01.06 -
CORS (교차 출처 리소스 공유)
CORS(Cross-Origin Resource Sharing)는 교차 출처 리소스 공유 정책이라고 해석할 수 있다. 즉 다른 출처의 자원에 관한 공유 정책이라고 보면 될 것이다. [CORS 에러 예시] 🚨 Access to fetch at ‘https://myhompage.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the re..
2023.01.05 -
[Java] LinkedList
LinkedList는 각각의 노드를 연결하는 방식의 자료구조이다. 각각의 노드들은 데이터와 함께 다음 노드와 이전 노드 값을 내부적으로 가지고 있다. (이중형 연결 리스트) 어느 위치에서든 추가나 삭제를 할 경우 변경되는 노드만 다시 연결해주면 된다. 그래서 ArrayList는 주로 검색이 많은 경우에 사용하고 LinkedList는 잦은 삽입/삭제 작업이 발생할 때 사용한다. LinkedList 사용 import java.util.*; public class TestMain { public static void main(String[] args) { // LinkedList 생성 / 초기화 LinkedList linklist = new LinkedList(); // LinkedList 자원 추가 link..
2023.01.05 -
@Bean
@Bean Bean 객체로 등록시켜줄 수 있도록 지정하는 어노테이션 입니다. Bean 객체라는 것은 겍체들을 개발자가 직접 관리하는 것이 아닌 Spring에서 자체적으로 관리되는 객체들을 말합니다. 주로 @Configuration 어노테이션과 함께 사용됩니다. 메소드에 적용하여 사용됩니다. @Configuration public class GamingAppLauncherApplication { @Bean // Bean 객체 등록 public MarioGame mariogame(){ return new MarioGame(); } }
2022.12.23 -
@Configuration
@Configuration 설정 클래스임을 지정해주는 어노테이션 입니다. 해당 어노테이션을 지정해주고 @Bean 어노테이션을 메소드에 명시함으로서 Bean 객체(메소드)를 생성하고 관리될 수 있게끔 해줍니다. @Configuration // 설정 클래스 지정 public class GamingAppLauncher { @Bean // Bean 객체 등록 public MarioGame mariogame(){ return new MarioGame(); } }
2022.12.23