목록분류 전체보기 (29)
봄디의 개발일지
1️⃣ IP (Internet Protocol)IP란 ? 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소입니다. IP 인터넷 프로토콜의 역할은 지정한 IP 주소에 데이터를 전달하고, 패킷 통신 단위로 데이터를 전달합니다. IP 패킷에는 위의 그림과 같이 출발지 IP, 목적지 IP 와 전송할 데이터가 담겨있습니다. 클라이언트서 자신의 출발 IP 주소와, 목적지 IP 주소와 전송할 데이터를 담아서 보내면 , 서버에서 데이터를 확인해 다시 클라이언트로 잘 받았다는 응답 메시지를 담은 패킷을 생성하여 클라이언트로 전송합니다. 위와 같은 IP 프로토콜이 가지고 있는 한계점이 있습니다. 비연결성 (패킷을 받은 대상이 없거나 서비스 불능 상태여도 패킷을 전송합니다. ..
Shift + Enter : 한 줄 추가하여 다음 줄로 이동Alt + insert : GenerateConstructor (생성자), toString(), getter(), setter() 를 생성해줍니다. Alt + Shift + Enter : 세미콜론 (;) 자동 입력맨 마지막까지 이동하여 세미콜론을 입력하지 않아도 자동으로 추가해줍니다. Ctrl + Alt + V : 반환 타입 확인하여 변수 추출메소드의 반환타입을 확인하여 변수를 추출해줍니다. 예를 들어 아래 코드에서 sb.toString()만 입력하고 ctrl+alt+v 단축키를 입력하면 자동으로 String str를 추가해줍니다. StringBuilder sb = new StringBuilder("hello");String str = sb..
2024.09.06 - [자바] - [JAVA] String이란? (String이 불변 객체인 이유 / String 메소드 정리)지난 포스팅에서 String 객체에 대해 알아보았습니다.String은 불변객체이기에 내부의 값을 변경할 수 없고, 속도도 느리다는 단점이 있었습니다. 이러한 문제를 해결하기 위한 불변이 아닌 가변 String 이 존재하는데 그것이 바로 StringBuilder 입니다. 1️⃣ StringBuilder 사용법StringBuilder sb = new StringBuilder();sb.append("hello");StringBuilder sb1 = new StringBuilder("hello"); 첫 번째 방법처럼 StringBuilder 객체를 생성한 후 append 메소드를 ..
1️⃣ String 사용법public class StringBasicMain { public static void main(String[] args) { String str1 = "hello";//기존 String str2 = new String("hello"); //객체 생성 가능(자바에서 이렇게 변경) System.out.println("str1 = " + str1); System.out.println("str2 = " + str2); }} String 을 사용하는 방법은 크게 두 가지가 있습니다. 쌍따옴표 사용: "hello" 객체 생성: new String("hello")2️⃣ String 클래스 - 비교두 방법의 가장 큰 차이점은 동..
Enum 이란?enumeration 의 줄임말로, 열거라는 뜻이며, 어떤 항목을 나열하는 것을 의미한다.일련의 명명된 상수들을 사용하여 코드 내에서 미리 정의된 값들의 집합을 나타낸다.Enum 을 사용하는 이유?타입 안정성 향상 : 정해진 객체만 사용할 수 있기에 잘못된 값을 입력하는 문제를 방지할 수 있다.데이터 일관성 : 정해진 객체만 사용하므로 데이터의 일관성이 보장된다.변경의 최소화 : 리팩토링 시 변경 범위가 최소화 된다. (내용의 추가가 필요해도, Enum코드만 수정하면 된다)package enumeration.ex0;public class DiscountService { public int discount(String grade, int price) { int discoun..
📝 문제백준 101988번 : 팰린드롬인지 확인하기💭 풀이 방법맨 앞과 맨 뒤, 이런식으로 확인을 해야하므로, 맨 앞을 가리킬 수 있는 변수와 맨 뒤를 가리킬 수 있는 변수가 필요문자열의 길이를 이용해서 맨 뒤를 가리킬 수 있는 변수 선언짝을 지어 확인하므로 반복문은 문자열 길이의 절반만큼 돌아야한다.예를 들어, "level" 이 있을 때 단어의 길이가 홀수(=5) 이므로, (l과 l), (e와 e) 두 번만 확인해주면 된다. "noon" 은 단어의 길이가 짝수(=4) 이므로 (n와 n), (o와 o) 두 번을 확인해줘야한다. 즉, 단어의 길이가 홀수일 때도, 5/2 = 2번만 확인해주면 되고, 짝수일 때도 4/2 = 2 번만 확인해주면 되므로 반복문은 문자열 전체 길이의 / 2 만큼 돌리면 된다반..
📝 문제백준 11365번 : !밀비 급일💭 풀이 방법문자열을 거꾸로 뒤집어야하므로 StringBuffer 클래스 이용하기반복문을 돌려 입력을 받고 입력한 문자열이 "END" 와 동일하다면 종료하기😊 작성한 코드package String;import java.util.Scanner;public class 밀비_급일 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(true) { String word = scanner.nextLine(); if(word.equals("END")) break; ..
📝 문제백준 11720번 : 숫자의 합💭 풀이 방법둘째 줄에 숫자를 공백 없이 입력받으므로 String 변수로 입력받기첫째 줄에 입력받은 숫자의 개수만큼 for문을 돌면서 charAt()으로 char 단위로 나누기아스키코드 이용하기숫자 0번의 아스키코드 : 48번이므로, -48을 해야 실제 숫자가 된다.그 숫자를 반복문을 돌며 총 수의 합을 구한다.⛔ 발생한 오류위와 같은 오류는 scanner.nextInt()를 호출하고, scanner.nextLine()을 바로 호출했을 때 발생하는 문제이다.scanner.nextInt()로 5를 입력하고 엔터를 치면, \n가 nextLine() 에서 읽히게 된다.따라서 문자열은 입력을 받지 못하게 되고, for문에는 count만큼 charAt()을 실행할 수 없기..
📝 문제백준 10808번 : 알파벳 개수💭 풀이 방법출력 결과값을 보아 a부터 z까지의 개수를 모두 출력해야하므로 26개를 갖는 정수형 배열을 선언아스키코드 값 이용하기a는 97번이므로 입력한 값에 97을 빼면 소문자 알파벳의 배열의 인덱스와 동일해진다! 예를 들어, apple을 입력했다고 가정했을 때, a는 아스키코드의 값이 97이므로 -97을 하면 0이 된다.즉, array[0]에는 a의 개수가 들어가는 자리이므로, 인덱스와 값이 동일해지는 것이다.마찬가지로, p의 아스키코드의 값은 112이고, 97을 빼면, 15이다. 즉, array[15]에 p의 개수를 넣을 수 있는 것이다.charAt() 사용하기charAt() 이란 String 으로 저장된 문자열 중에 한 글자만 char 타입으로 변환해줍니..