개발자의 공부방 209

자료구조] 스택 Stack

스택이란? - LIFO (Last In First Out) 정책 - 데이터를 제한적으로 접근할 수 있는 구조 - 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 - 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 눈으로 어떻게 변하는지 확인해볼 수 있는 웹사이트 https://visualgo.net/en/list?slide=1 Linked List (Single, Doubly), Stack, Queue, Deque - VisuAlgo VisuAlgo is generously offered at no cost to the global Computer Science community. If you appreciate VisuAlgo, we kindly request that you spread..

알고리즘] 순차 검색(Sequential Search) 알고리즘

데이터를 처음부터 검색하는 알고리즘입니다. 단순하지만 비효율적이라는 단점이 있습니다. 순차 검색은 단방향으로 검색을 하기 때문에 선형 검색이라고 부르기도 합니다. 1) 데이터 배열을 N을 가리키기 위한 변수 I를 선언하고 0으로 초기화한다. 2) I < N이면 3단계를 수행하고, I == N이면 4단계를 수행한다. 3) N[I] == "5" 👉 4단계로 간다. N[I] != "5" 👉 I를 하나 증가시키고 다시 비교한다. 5) I < N 👉 I번째 위치에서 원하는 데이터를 발견한다. I == N 👉 원하는 데이터가 발견되지 않았다. 예시 코드) public class SequentialSearch { public static void main(String[] args) { int[] dataArray =..

스프링] 쿠키의 Same Site를 알아보자

Same Site란? 크롬 정책에서 비롯한 쿠키 정책이며 SameSite라는 속성의 기본 값을 None에서 Lax로 변경한 것이다. 이는 CSRF 및 의도하지 않은 정보 유출에 대한 취약성에 대처하기 위함이다. SameSite 속성 총 3가지의 종류가 있다. Strict, Lax, None Strict 👉 SameSite간의 요청에서만 쿠키의 전송을 허용하며 가장 완벽한하지만 편의성이 떨어진다. Lax 👉 기본적으로는 Strict지만 Cross Site 요청에서도 “Safe”한 요청인 Http GET, a태그, link태그를 통한 접근은 허용한다. None 👉 Same Site 요청은 물론 Cross Site의 요청에도 모두 전송을 허용한다. 그렇기때문에 보안에 취약하다. None을 사용하려면 반드시 H..

알고리즘] 대소문자 변경하기

설명 대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요. 입력 첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다. 문자열은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다. 예시 입력 StuDY 예시 출력 sTUdy 강의 정답 더보기 class Main { public String solution(String str){ String answer=""; for(char x : str.toCharArray()){ if(Character.isLowerCase(x)) answer+=Character.toUpperCase(x); else answer+=C..

ssh 로그인 설정

1. localhost에서 ssh-key-gen을 사용한다 - public key와 private key를 생성한다 ssh-keygen 2. public key를 원격 호스트 (nas)에 복사한다 - ssh-copy-id를 사용한다 ssh-copy-id -i [id_rsa.pub 파일명] [사용자명]@example.com ssh-copy-id 명령어를 이용해서 ssh key를 원격호스트에 복사했을 때 .ssh 폴더가 생긴것을 확인할 수 있다. 3. 암호 입력없이 원격 호스트에 로그인 이제 로컬에서 원격호스트에 로그인을 시도한다 ssh -p [포트] [원격호스트@exa.com] 하지만 비밀번호를 물어보고 앉아 있다? 잘못됐다 다시하자!! 가 아닌... 권한 설정을 해줘야한다 아래와 같이 권한 설정을 해준다..

IntelliJ] 디버깅 모드가 안될 때

인텔리제이에서 디버깅모드를 하게 되면 해당 값이 정상적으로 나오는지 확인을 해야합니다. 근데 어느날 디버깅모드를 실행하는데 정상적인 값은 안나오고 계속 내부클래스만 보여지고 있었습니다. 뭔가 이상해서 계속 찾아보다 해결법을 알아서 게시해봅니다 증상 디버그 브레이크포인트를 걸어놨는데 디버깅 모드 시 내부 클래스가 보여진다. (해당 메서드에 값은 안보이고 이게 뭔...) 해결 맥북 기준 Shift + CMD + F8 를 누른다 (윈도우일 경우 설정 > Keymap > Find Shortcut or Search를 하면 단축키 확인이 가능하다) Shift + CMD + F8을 누르면 아래와 같은 BreakPoints 팝업창이 뜬다. 여기서 Java Exception Breakpoints, Any exceptio..

Servlet] Intellij console log가 안나올 때 해결법 feat.SpringBoot

요즘 다시 백엔드 공부를 하고 있습니다... 정말 많이 돌아왔네요... 자 아무튼 김영한님의 스프링 강의를 보면서 하다가 System.out.print를 했는데 안나오시는 경우가 생겼습니다. 원인 ServletApplication의 @ServletComponentScan 어노테이션이 없어서 그렇습니다. @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } } 해결 SpringBoot를 이용하는데 Boot에서 Servlet을 이용하려면 @@ServletComponentScan 어노테이션..