본문 바로가기
반응형

전체 글1072

도메인(dns- Domain Name Server) / nslookup 인터넷을 사용하기 위해 지금 tistory 사이트 처럼 어디든 사이트를 들어가려면 특정 도메인을 작성하고 들어가게 된다. 도메인이란 여러 뜻이 있지만 인터넷에서의 도메인은 해당 사이트의 주소를 말한다. 만약 도메인이 존재하지 않다면 이런 영문명이 아닌 ip를 통해서 접근해야한다. 예를들어 네이버 사이트를 접속하려면 naver.com 을 해야하는데 이것을 ip로 들어가려면 223.130.200.104 을 주소창에 써보면 네이버가 접속이 된다. 즉 네이버 도메인의 ip는 223.130.200.104 라는 뜻이다. 근데 매번 이 ip를 외우고 다닐수 없으니 도메인이라는 개념이 생겨났다. cmd에서도 특정 ip 검색이 가능하고 mac이나 리눅스 등이 터미널 쉘창에서는 nslookup 명령어를 사용하여 ip를 검.. 2022. 8. 7.
HTTP / HTTPS 차이 인터넷을 할때 주소창에 도메인 주소를 적기 전에 http:// 혹은 https:// 를 붙여야한다. 몇몇의 브라우저에서는 client(사용자) 의 편리함을 위해 자동으로 http 를 가려주긴 하는데 주소를 복사하게 되면 맨 앞에 http의 주소가 함께 붙는다. 그럼 이 http는 무엇인가? HyperText Transfer Protocol 의 약자로 통신 규약 프로토콜이다. HTTP란? HTTP 서버는 기본 포트인 80번 포트에서 서비스 대기중이며 TCP 80 포트를 사용해 연결하면 서버는 요청에 응답하면서 자료(텍스트)를 주고받는다 단순텍스트를 주고받기 때문에 네트워크에서 전송 신호를 인터셉트하는 경우 원하지 않는 데이터 유출이 발생할 수 있다. HTTPS란? HTTPS는 기존 HTTP 레이어에서 SS.. 2022. 8. 6.
백트래킹 저번 시간에 DFS, BFS 에서 다뤘는데 이들은 모든 노드를 참조한다는 그런 탐색 방법이다. 하지만 이미 조건에서 벗어난 경우에도 나머지 노드들을 탐색을 계속해서 진행해야할까? 그럴경우엔 괜히 자원 낭비가 될수가 있다. 이럴때 사용하는것이 백트래킹 기술이다. 백트래킹(Backtracking)즉, 코딩에서는 반복문의 횟수까지 줄일 수 있으므로 효율적입니다.일반적으로, 불필요한 경로를 조기에 차단할 수 있게 되어 경우의 수가 줄어들지만, 만약 N!의 경우의 수를 가진 문제에서 최악의 경우에는 여전히 지수함수 시간을 필요로 하므로 처리가 불가능 할 수도 있습니다. 가지치기를 얼마나 잘하느냐에 따라 효율성이 결정되게 됨 이를 가지치기라고 하는데, 불필요한 부분을 쳐내고 최대한 올바른 쪽으로 간다는 의미 해를 .. 2022. 8. 5.
알고리즘 BFS 와 DFS 알고리즘 공부 해봤다면 그래프에서 모든 노드를 탐색하기 위한 기법으로 BFS와 DFS 를 들어봤을 것이다. 둘의 공통 목적으로는 다음과 같다.그래프의 탐색의 목적은 하나의 정점에서 시작하여 그래프의 모든 정점들을 한 번씩 방문(탐색)하는 것이다.그래프의 데이터는 배열처럼 정렬이 되어 있지 않다.그래프에서 원하는 자료를 찾으려면, 하나씩 모두 방문하여 찾아야 한다.탐색 방법은 아래 그림과 같다.모든 노드를 들려야해서 효율이 떨어질순 있지만 이부분은 백트래킹으로 해결이 가능하고 백트래킹에 대한 내용은 다음포스팅에 이어서 다뤄볼 예정이다. 특징BFS 에 대한 특징BFS 는 재귀적으로 동작하지 않는다.이 알고리즘을 구현할 때 가장 큰 차이점은 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 반드시 검사해야한.. 2022. 8. 4.
오버로딩(Overloading)과 오버라이딩(Overriding) 자바 기술면접에서 단골문제로 나오는 문제중 하나인 오버로딩과 오버라이딩에 대해서 다뤄볼 것이다. Overloading 동일한 이름을 가진 메소드들이 같은 클래스에 존재하고 파라미터에 따라서 호출이 되는 방식 Overriding 상속관계에서 부모클래스에서 상속받은 클래스를 자식 클래스가가 재정의 하는 것 parameter 및 return type는 같아야 함 Java 1.5 이상부터는 return type이 같은 클래스나 subclass가 될 수도 있음 즉, 자식 클래스가 필요에 의해 메소드 구현을 다양하게 하기 위해서 사용 2022. 8. 3.
mybatis에서 <![CDATA[ ]]> 사용 이유 CDATA 란 CDATA = Character DATA, 즉 문자형 데이터를 말한다. 이렇게 선언하고 안에 문자열을 채워 넣으면 , [ ] 안에 있는 문장은 파싱되지 않고 그대로 문자열로 출력된다. 그래서 아래 참고 포스팅의 spring 예제에서 mapper 파일을 보면 이 문구 안에 쿼리가 들어가있다. 마이바티스에서 매퍼 파일은 XML으로 작성되어 있고, 파싱될 때 XML 표준으로 파싱된다. SELECT문에는 조건을 걸어 쿼리하기 위해 , = 등의 기호를 많이 사용하는데, 이것이 파싱 중에 태그로 인식되거나 하는 등의 문제가 생길 수 있다. 안에 원하는 쿼리문을 선언 한다면, 파싱하지 않고 그대로 문자열로 인식 시킬 수 있어 이런 문제를 예방할 수 있다. 동적 SQL에서는 사용하지 못하는데, 필요한 특.. 2022. 8. 2.
시간복잡도 계산 시간복잡도 기본적인 연산을 수행하는데에 어떤 고정된 시간이 걸릴 때, 알고리즘에 의해서 수행되는 기본 연산의 개수를 세어 예측할 수 있다. 그러므로 걸리는 시간의 총량과 알고리즘에 의해 수행되는 기본적인 연산의 개수는 최대 상수 인자만큼 다르다. - 위키피디아- 시간복잡도를 구하는 방법은 아래와 같이 크게 3가지이다. O(Big-O) Ω(Omega) Θ(Theta) 가장 많이 쓰이는 시간복잡도는 빅오(Big-O) 표기법이므로 해당 표기법에 대한 설명을 다뤄볼 것이다. 코드를 예시로 하여 좀 더 알아보면 아래 두개의 코드를 한번 자세히 읽어보도록 한다. int sum = 0; for (int i=0; i 2022. 8. 1.
자바 문자열 비교 compareTO 프로그래밍 언어 별로 값을 비교하는 메서드들이 존재한다. integer 의 값은 값별로 뭐가 크고 작은 값인지 비교가 확실한데 string 일 경우엔 어떻게 비교가 될까? 이럴때 사용하는 메서드가 compareTo 이다. 어떻게 비교가 되는지 살펴보면 다음과 같다. int compareTo(NumberSubClass referenceName) int compareTo(String anotherString) compareTo() 함수는 두개의 값을 비교하여 int 값으로 반환해주는 함수이다. compareTo() 함수에는 위에서 설명하는바와 같이 "문자열의 비교" 와 "숫자의 비교" 두 방식이 존재한다. 숫자의 비교 같은 경우는 단순히 크다(1), 같다(0), 작다(-1) 의 관한 결과값을 리턴해주는 반면.. 2022. 7. 31.
Map, Set, List 에 대해서 이번 포스팅에서는 자바에서 arraylist나 배열 말고 값을 저장할수 있는 또 다른 형태인 map, set, list 에 대해 다뤄보려고 한다. 구조는 다음과 같다. 먼저 각각에 대해 알아보면 list 순서와 중복이 있는 자료구조 map 키와 데이터를 같이 저장할 수 있는 자료구조 set 순서없고 중복이 존재할 수 없는 자료구조 즉 정리를 하면 List는 기본적으로 데이터들이 순서대로 저장되며 중복을 허용한다. Map은 순서가 보장되지 않고 Key값의 중복은 허용하지 않지만 Value값의 중복은 허용된다. Set은 순서가 보장되지 않고 데이터들의 중복을 허용하지 않는다. 그럼 사용법을 알아보면 다음과 같다. Map map = new HashMap(); map.put("A", 1); map.put("B".. 2022. 7. 30.
반응형