Develop/곤부📙

토요스터디 / 10주차

밀김 2023. 4. 29. 13:24
728x90

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< JAVA >

//		"이름: 홍길동, 나이: 미상, 취미: 스벅커피 마시기"
//		출력결과: [이름: 홍길동, 나이: 미상, 취미: 스벅커피 마시기]
		String str = "이름: 홍길동, 나이: 미상, 취미: 스벅커피 마시기";
		String[] arr = str.split(",");
		System.out.println(str);
		
		
//		2.
//		"010-1234-5678"
//		출력결과: [010, 1234, 5678]
		String str2 = "010-1234-5678";
		String[] arr2 = str2.split("-");
		for(String arr : arr2) {
			System.out.print(arr);
		    if (!arr.equals(arr2[arr2.length - 1])) { // 마지막 요소가 아니면 반점을 출력
		    	//equals함수는 괄호안에 있는것과 비교하는 함수다
		        System.out.print(",");
		    }
		}
		
		
		
		
//		3.
//		"김철수 김영희 김수진 김지수 박지우 박재우 박진우"
//		출력결과: [김철수, 김영희, 김수진, 김지수, 박지우, 박재우, 박진우]
		String member = "김철수 김영희 김수진 김지수 박지우 박재우 박진우";
		String[] name = member.split(" ");
		for(String num : name) {
			System.out.print("["+num+"]");
		    if (!num.equals(name[name.length - 1])) { // 마지막 요소가 아니면 반점을 출력
		        System.out.print(",");
		    }
		}
		

		
		
//		<심화문제>
//		아래 callme 배열에서 전화번호를 어떤 기호나 공백 없이 11자리로 출력해주세요.
//		* String.join():문자열 합치기 과 String.replace():문자열대체 에 대해 알아보세요.
//		출력결과: 01012345678
		
		String[] callme = new String[] {"연락 주세요", "010-1234-5678"};
		
		for (int i = 0; i < callme.length; i++) {
		    String str = callme[i];
		    str = str.replace("-", "");
		    System.out.println(str);
		}
        
        
        		// 뉴렉회사는 개인정보처리법이 바뀌어 회원의 주민번호를 수정하여 저장해야한다
	       // 000000-0000000 형태의 문자열을 -을 제외한 문자열을 리턴하는 메서드를 작성하세요
	       // 결과: {"1234561234567", "0000001111111"}
//	       String[] RRNs = {"123456-1234567", "000000-1111111"};
//	       for(String rrn : RRNs) {
//	    	   rrn = rrn.replace("-", "");
//	    	   System.out.print("{"+rrn+",");
//	       }
        
	       
//	       for (int i = 0; i < RRNs.length; i++) {
//	              // 하이픈(-)을 제거하여 숫자만 추출
//	              String digits = RRNs1[i].replaceAll("-", "");
//	              // 추출한 숫자를 새로운 형식으로 변환
//	              String converted = "\""+digits.substring(0, 6) + digits.substring(6)+"\"";
//	              convertedRRNs[i] = converted;
//	          }
        
        

		
//		String str = "Hello, world! This is Java programming.";
//
//		// "world!" 다음에 오는 문자열을 추출하기 위해 "world!"의 인덱스를 찾음
//		int index = str.indexOf("world!");
//
//		// "world!" 다음에 오는 문자열을 추출함
//		String result = str.substring(index + "world!".length());
//
//		System.out.println(result); // 출력 결과: This is Java programming.
		
		
		
		
		// 다음 url 문자열에서 access_token의 값을 추출하는 메서드를 작성하세요
		// 결과 : "a123bd24"
//	       String requestUrl = "https://quiz4.io?access_token=a123bd24&expires=1000";
//	       int idx = requestUrl.indexOf("access_token");
//	       int idx2 = requestUrl.indexOf("&");
//	       String result = requestUrl.substring(idx+"access_token".length(),idx2+"&".length()-1);
//	       System.out.println(result);

 

 

 


 

 

 

 

 

< QUERY >

(1) 
NAME 첫글자가 '김'으로 시작하는 애들만 찾아,그들의 ID와 AGE를 출력하시오)
SELECT ID AS USER_ID,AGE AS USER_AGE FROM MEMBER WHERE NAME LIKE '김%'; 

(2) 
'홍길동'보다 더 많은 AGE인 사람들의 NAME과 AGE를 출력하시오)
SELECT NAME,AGE FROM MEMBER WHERE AGE > (SELECT AGE FROM MEMBER WHERE NAME = '홍길동');
*다른방법(컬럼에 별칭 붙인 방법)*
SELECT NAME "이름_1",AGE 나이 FROM MEMBER WHERE AGE  > (SELECT AGE FROM MEMBER WHERE NAME = '홍길동');

// *먼저 조회하고 싶은 구문은 ( ) 서브쿼리로 감싼다
// 1. NAME이 '홍길동'인 것의(WHERE NAME) '나이'를 멤버테이블에서 가져온다(SELECT AGE FROM MEMBER)
// 2. '이름'과'나이'를 가져온다.(SELECT NAME,AGE) 멤버테이블의 AGE컬럼에서 (FROM MEMBER WHERE AGE)

 

 

 

 

 


 

 

 

 

 

 

 

 

< HTTP >

🏷️ 9주차

 

- Port란? (Port번호의 범위도 슥 봐보기 2^16)

: 외부의 다른 장비와 접속하기 위한 플러그 같은것이고

포트 번호의 범위는 0부터 1023까지가 제일 잘 알려져 있고, UNIX/LINUX에서 루트 권한으로만 포트를 열수 있고 예약영역 이라고 한다

포트 번호는 TCP/IP 프로토콜에서 사용되며, 0부터 65535까지의 범위를 가집니다. 

 

 


- HTTP, HTTPS 프로토콜의 포트 번호는 몇인가요?

: HTTP는 90 HTTPS는 443

 

 

 

- HTTP의 특징 때문에 여러가지 도구가 있는데요.

  그 중 HTTP 쿠키란 무엇일까요?

: 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각

 

 

 


- 서버는 클라이언트에게 쿠키를 어떻게 만들어주나요?

: 서버에서 로그인 성공 시 쿠키를 담아 브라우저에 전달하면 

브라우저가 해당 쿠키를 저장해두고 해당 사이트에 접속할때마다 계속해서 해당 쿠키를 클라이언트에게 제공함

 

 

 

 


- 쿠키의 구조를 알아보고 [브라우저 개발자도구] -> [애플리케이션] -> [쿠키]를 웹 사이트마다 어떻게 있는지 가볍게 구경해보세요

 

 

[심화]

조금 더 응용 단계를 알고싶다면

- 쿠키의 HttpOnly와 secure, path, domain 옵션

: 쿠키 HTTPONLY / 브라우저에서 쿠키에 접근할 수 없도록 제한하기 위한 옵션

자바스크립트를 통한 쿠키 조작도 불가능하다

(웹 애플리케이션의 보안성을 높이기 위한 중요한 보안 기능 중 하나)

 

Secure: 이 옵션을 설정하면, 쿠키를 HTTPS 프로토콜로만 전송할 수 있습니다. 

이것은 중요한 정보가 담긴 쿠키가 도난당하는 것을 방지합니다.

Path: 이 옵션은 쿠키가 적용되는 URL 경로를 지정합니다. 

경로를 지정하면 해당 경로를 포함한 하위 경로에서만 쿠키를 전송할 수 있습니다.

Domain: 이 옵션은 쿠키가 적용되는 도메인을 지정합니다.

도메인을 지정하면 해당 도메인을 포함한 하위 도메인에서도 쿠키를 전송할 수 있습니다.

 

 

 

 

- 쿠키의 도메인당 최대 개수가 있다?

: 브라우저에서 쿠키 최대 개수는 20개 이하로 제한 

이렇게 제한하는 이유는 도메인당 너무 많은 쿠키가 저장되면 웹 브라우저의 성능에 영향을 미치는것을 방지하기 위해서이다

 

 

 

 

 

 


 

 

 

 

< 프로그래머스 코테 >

//정수로 이루어진 문자열끼리 비교해서 더 큰값 도출하기
class Solution {
    public int solution(int a, int b) {
        
		String result1 = String.valueOf(a)+String.valueOf(b);
        String result2 = String.valueOf(b)+String.valueOf(a);
        
        int num1 = Integer.parseInt(result1);
        int num2 = Integer.parseInt(result2);
        int max = Math.max(num1, num2);
        
        if(num1==num2) {
        	return num1;
        }else {
        	return max;
        }
        
    }
}

 

 

 

 

 

 

 

 

 

728x90