본문 바로가기

전체 글

(43)
배포 설정용 세팅 sudo apt update //리눅스 최신 업데이트 sudo apt install openjdk-11-jre-headless //자바설치 sudo apt-get install gradle // 그레들 설치 ./gradlew build // ./gradlew clean build //빌드, 삭제 java -jar build/libs/이름-0.0.1-SNAPSHOT.jar //실행 (nohup 앞에 붙이면 백에서 계속 실행) ./gradlew --debug build //안되면 rm -r /home // 디렉토리 삭제 --spring.profiles.active=local // 로컬에서 H2 fuser -k -n tcp 8080 //포트죽이기 yml에서 spring: datasource: driver-cl..
(AWS)EC2,S3,RDS 기본 설정법. 서버를 구동하기 위해서는 반드시 서버를 구동할수 있는 컴퓨터가 필요할 것이다. 유명 대기업들은 자체 서버실을 운영하며 본인 회사의 서버를 자체적으로 관리하고 있다. 하지만 규모가 작은 기업은 위의 사진과 같은 서버실을 따로 운영하는게 부담일수도 있다. 대안 으로 사용할수 있는게 클라우드 컴퓨팅이며 유명한 기업의 플랫폼들은 대표적으로 AWS, Azure, Firebase 등이 있다. 우리는 이중 가장 유명한 AWS(Amazon Web Services)에 대하여 알아볼 것이다. 앞서 이번 실습에서 진행할 단계는 로그인을 하고 토큰을 받는것 까지 진행해 볼것이다. 제목처럼 우리는 3가지의 기능을 학습하여야 한다. EC2 (Amazon Elastic Compute Cloud) EC2는 원격으로 제어 할수 있는 ..
(JAVA) 스트림 우리는 컬렉션을 사용하면서 List, Set, Map 을 알아보았다. 컬렉션은 프레임워크이며, 프레임워크는 표준화를 위해 사용하는데 아쉽게도 List, Set, Map의 사용법이 각자 달라서 표준화라고 하기에는 무리가 있었다. 그걸 해결하기 위해 스트림을 사용할수 있는데 스트림(Stream) 하면 뭐가 떠로르는가? 그렇다, 개울, 시내 같이 물이 흐르는것들이 떠오를 것이다. 스트림은 흐름이다. 데이터의 흐름. 우선 개념을 느끼고 가자. List, Set, Map,배열 같은 것들을 스트림에 맡기면 스트림은 편견없이 우리가 원하는데로 처리해 준다. 이게 무슨 말일까? 스트림은 데이터의 본질을 변경하지 않는다 단지 읽기만 하는데 이런 특성때문에 내가 어떤 유형을 사용하던 스트림에서는 공평?하게 처리할수가 있다..
(스프링 Security) 세션과 JWT 앞서 인증(Authentication)은 로그인 하는거고 인가(Authorization)는 로그인 되면 정보를 인증한 사람한테 푸는것이다. 우리는 인터넷을 사용할때 로그인을한뒤에 여러 정보들을 요청하고 받게된다. 네이버 로그인하고 메일을 확인도하고 카페도 이용을하고 뉴스도 보곤한다. 그런데 이게 자동으로 그냥 되는게 아니라는건 우리의 눈물나는 실습들이 증명해 왔을 것이다. 오늘은 뭐가 어떻게 돌아가고 있었는지 개념을 챙겨보는 시간을 가질까 한다. 쿠키는 사용자 설정을 브라우저에 저장하면 다음번에 서버로부터 정보를 받을때 서버는 쿠키 설정을 기반으로 맞춤 정보를 보내게 된다. 예를들어 크롬에서 화면을 어두운테마를 설정하면 내컴퓨터에 쿠키로 저장이되며 서버에서는 다음에 내가 정보를 요청할때 거기에 맞춰서 화..
(Java) Iterator 지금까지 컬랙션의 대표적인 기능들인 List, Set, Map에 대하여 알아보았다. 이들은 각자 사용되는 메서드들도 다르고 자료를 저장하는 형태도 다르다. List에는 get이라는 메서드를 사용하여 값들을 출력할수가 있는데 Set에서는 지원하지 않기에 사용이 불가능하다. Iterator를 사용해 주면 코드의 변경없이 List에서 Set으로 변경이 가능하다. 간단한 예제를 한번 살펴보자. public class Main { public static void main(String[] args) { List groupA = new ArrayList(); groupA.add("orange"); groupA.add("banana"); groupA.add("apple"); groupA.add("melon"); gr..
(JAVA)HashMap,TreeMap 컬렉션의 전반적인 설명은 아래 링크를 참고하자. https://acid7937.tistory.com/37 먼저 Set과 List, Map은 전부 돌아가는 방식이 비슷하다. 개인적인 생각으로 이 글을 안봐도 Map을 이해하는데 문제가 없다고 생각한다. Set 설명 https://acid7937.tistory.com/42 List 설명 https://acid7937.tistory.com/39 이번에는 Map을 알아볼 것이다. Map은 순서는 없고 키중복은 안되고 값 중복은 가능하다. 순서X 키중복X 값중복 O 회원가입할때가 대표적으로 Map이 사용될때 라고 언급하였었다. 혹은 제품명과 수량 같은곳에서도 사용할수 있겠다. Set과 List를 봤다면 Map도 사용법이 거의 동일한것을 알수 있을것이다. 코드로 살..
(스프링 Security)HTTPS B가 A에게 안녕이라는 문자를 보낸다고 가정하자 그런데 중간에 해커가 정보를 가로챈다면 문제가 생긴다. 기존의 HTTP는 안녕이라는 문자를를 보내면 안녕이라는 문자가 그대로 흘러서 상대방에게 갔었다. 그래서 중간에 탈취해서 정보를 보면 안녕이라는 문자가 확인이 가능했다. 이를 방지하게 위해 HTTPS라는것이 생겼는데, HTTPS 는 HTTP에 secure를 더하여 보안성이 올라간 형식이다. 우리는 우리가 사용중인 웹페이지가 HTTPS인지 손쉽게 확인이 가능한데 크롬 유저라면 좌측 상단을 확인해보자. 자물쇠 버튼을 눌러보면 사이트가 HTTPS를 사용중인것을 확인할수 있을것이다. HTTPS는 SSL이나 TLS 프로토콜을 사용하여 키교환을 하게 된다. HTTPS는 보안성을 올리기 위해 키라는 것으로 인증절차를..
(JAVA)HashSet, TreeSet 컬렉션의 전반적인 설명은 아래 링크를 참고하자. https://acid7937.tistory.com/37 이번에는 Set을 알아볼 것이다. Set은 순서가 없고 중복도 없다고 설명하였다. 순서 X 중복 X 이러한 특징을 가진게 주머니 혹은 가방(즉.. 이것은 집합이다) 라고 하였다. 개발하다가 집합과 관련되면 Set을 떠올리면 된다. 왼쪽 가방에는 사과, 바나나, 멜론이 있고 오른쪽 가방에는 사과, 수박, 복숭아가 있다면 교집합은 사과 합집합은 사과 바나나 멜론 수박 복숭아 왼쪽 - 오른쪽 차집합은 바나나 멜론 이 될것이다. 이것들은 Set을 사용하면 할수 있는 것이다. 먼저 Set이 어떻게 돌아가는지 코드를 통해 알아보자. HashSet 앞서 사과 바나나 멜론이 한 가방에 있는것을 상상해 보았다. St..