분류 전체보기
-
[SOLID 패턴] SRP (단일 책임 원칙) ,OCP(개방-폐쇄 원칙) 설명자바웹프로그래밍/디자인패턴(design pattern) 2022. 3. 22. 20:00
1.Single Resposibility Principle (단일 책임 원칙) - 객체는 단 하나의 책임만 가져야 한다. 예제를 통하여 SRP를 이해해보자 먼저 아래의 2개의 함수를 보자 public int add (int num1,int num2){ return num1 + num2; } public int print(int num){ system.out.println(num); } 위 두 함수중 add 함수는 두 수를 더한 값을 반환해주고 , print함수는 전달받은 정수를 출력해준다. 각각의 함수는 각자의 책임을 주어 만들었다. 이것을 합쳐서 public void numPrint(int num1,int num2){ System.out.println(num1+num2); } 위 처럼 함수를 하나로 만..
-
면접질문. get 과 post의 차이?자바웹프로그래밍/HTTP 2022. 3. 4. 11:37
*도움이 되셨다면 광고 한번 클릭해주세요! 제게 큰 힘이됩니다! 이번 면접에 볼때 get과 post의 차이에 대해 질문을 하였다. 질문을 듣자 마자. 아차 하였고, 한번도 생각해본적없던 문제였다. 결국 어버버어버버 하여 답변을 제대로 하지못하였다. 정말 가고싶은 회사였는데.. 안타깝네.. 그래도.. 경험이라 생각하고 다음에 저 질문을 받았을때 멋지게 답변하기 위해 get 과 post의 차이점을 정리하고 가볼려고 한다. GET HTTP/1.1 스펙인 GET은 서버로부터 정보를 조회하기 위한 메소드이다. GET은 요청할때 필요한 데이터를 Body에 담지않고, 쿼리스트링을 통해 전송한다. 예제) www.example.com/resources?name1=value1&name2=value2 또한 GET은 불피요한..
-
[#HTTP정리] HTTP는 무엇인가(근본적인)? - 1자바웹프로그래밍/HTTP 2022. 2. 19. 11:40
HTTP (HyperText Transfer Protocol) 텍스트 기반의 통신 규약이며 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. HTTP는 TCP위의 계층이며, HTTP는 자신의 메세지를 전송하기 위해 TCP를 이용한다. 네트워크 프로토콜 스택 HTTP 애플리케이션 계층 TCP 전송 계층 IP 네트워크 계층 네트워크를 위한 링크 인터페이스 데이터 링크 계층 물리적인 네트워크 하드웨어 물리 계층 # 연결전에 TCP/IP Connection을 먼저 맺어야한다. ★ 웹브라우저 동작 방식 웹 브라우저는 서버의 URL에서 호스트 명을 추출한다. 웹 브라우저는 서버의 호스트 명을 IP로 변환한다. 웹 브라우저는 URL에서 포트번호(있다면) 추출한다. 웹 브라우저는 웹서버와 TCP 커넥션을 맺는다. 웹..
-
Spring boot[maven] - profile에 따른 application.yml 파일 설정 및 암호화Spring 2022. 2. 4. 11:32
1. 포트에 따른 개발서버, 로컬서버 분리 application.yml 설정 profiles속성을 이용하여 로컬서버와 개발서버를 분리하고 개발 서버에서 mvn 빌드를 진행할것이다. spring: profiles: active: @spring.profiles.active@ --- server: port: 8080 spring: config: activate: on-profile: dev datasource: username: ims password: ims12!@ driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://192.168.0.17:3309/ims?serverTimezone=UTC&allowPublicKeyRetrieval=true ..
-
[백준 알고리즘] 7576번 토마토 with JAVA (메모리 초과)알고리즘/백준알고리즘 2022. 1. 27. 20:43
전형적인 BFS 문제이다. 하루가 지날때마다 토마토는 익고 박스안에 토마토들이 전부다 익으면 그 날을 계산하여 출력하는거다. 1. 입력된 토마토박스에서 익은 토마토를 찾아서 그 토마토에 위치를 저장해두는 클래스, 그리고 그 클래스를 담는 queue를 생성한다. 2. 큐가 빌때까지 루프를 돌리고 queue에서 나온 토마토 좌표에서 상하좌우를 계산한후 방문하지 않고 익지않은 토마토를 다시 위치 클래스로 만들고 그 클래스를 queue에 담는다. 또한 상하좌우를 계산할때 하루가 지날때마다 익는다고 하였으니, 위치 클래스안에 변수 ripe를 만들어서 1씩 더해주자 3.큐가 다비면 더이상 방문할 토마토가 없는것이고, 다시 토마토 박스를 점검하여 배열에 0이 존재하면 -1를 출력하고 그렇지 않다면 몇일이 지나면 익는..
-
[백준 알고리즘] 2178번 미로탐색 with JAVA (메모리 초과)카테고리 없음 2022. 1. 24. 20:55
문제는 전형적인 bfs문제인 미로 탐색이다. 큐를 통해서 배열을 한번씩 방문하면서 거리계산을하고 마지막 N,M으로 도착할시에 출력하면 최단거리로 출력이된다. 하지만, 방문표시에 대한 코드 한줄때문에 계속 메모리 초과가 나서 고생했다. 수정내용은 코드에 주석처리 해놓았다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; class Pair { public int x,y,dist; Pair(int x,int y,int dist){ this.x = x; this.y = y; this.dist = dist; } } public class Main { ..
-
Docker 네트워크 구조 및 docker client,docker server카테고리 없음 2022. 1. 24. 12:21
#도커 네트워크 구조 vETH Docker bridge docker 0 docker는 기본 설치후 docker0이라는 네트워크 bridge를 만든다 172.17.x.x docker 네트워크는 내부 컨테이너 안에서 ifconfig를 명령어를 입력하면 eth0에 172.17.x.x 형태로 할당 되어있는것을 볼수있고, 이 할당된 ip는 veth라는 가상 망을통해 docker에 기본 bridge인 docker()과 이어져있다. #도커 Custom bridge Docker는 사용자만의 bridge를 만들수 있도록 명령어를 제공한다 docker network create --driver bridge mybridge 위와 같은 명령어를 사용하면, docker0과 같은 기본 bridge말고 자신만의 bridge를 사용..
-
Docker를 사용하면서 많이쓰는 명령어 정리 -1Devops 2022. 1. 21. 12:41
#컨테이너 내부에서 호스트의 도커 환경으로 돌아올때 Ctrl + P,Q - 컨테이너를 정지하지 안혹 빠져나옴 Ctrl+D or 쉘에 exit 입력 - 컨테이너를 정지하고 빠져나옴 # Docker 실행 명령어 arg -d 와 -i -t 의 관계 -d : 컨테이너를 foreground 형태로 실행함. (실행한 컨테이너가 foregound로 실행하는 프로세스가 없으면 바로 종료된다.) -i -t : 컨테이너 내부 진입하도록 attach 가능한 상태로 설정한다. # Docker exec 강한놈 exec 명령어를 이용하면 컨테이너 내부의 셸을 사용할수있다. (예: mysql 컨테이너 내부에 /bin/bash 프로세스를 실행하고, -i -t 옵션을 사용해 배시 셸을 쓸수 있다. *docker exec -i -t k..