🚀 from error to study/Back-End(Java)

    [Java] 메소드의 반환형과 매개변수

    매개변수: 함수를 호출할 때 인수로 전달된 값을 함수 내부에서 사용할 수 있게 해 주는 변수 반환형: 다른 곳에서 해당 메소드를 호출했을 때 전달할 값 내가 그린 그림... 나를 위해 그렷찌 생성자: 클래스명과 이름 똑같고 반환형 없는 일종의 메소드 https://wookoa.tistory.com/80 Cannot make a static reference to the non-static field 오류 머리말 자바로 프로그래밍을 시작하면, 종종 'non-static field' 오류와 직면하는 경우가 발생한다. 본 포스팅에서는 해당 에러 메시지에 대해서 설명하고, 오류 상황을 해결하는 방법에 대해서 설명 wookoa.tistory.com 꼭 읽어 보기 https://tantangerine.tistory..

    [실습문제/mvc패턴] 반복문에 이름을 지어 주고 다중 반복문 한 번에 빠져나오기

    [문제] Q. 현재 코드는 view단에서 "삭제 후 복구할 수 없습니다. 정말 삭제하시겠습니까? (Y/N)" 출력문의 대답을 받기 전부터 이미 controller에 기능을 요청하여 데이터가 삭제된 상태이다. 1) 해당 출력문에서 Y를 입력받은 경우에만 데이터를 삭제 2) Y/N 이외의 대답을 받은 경우 (데이터 삭제 없이) 재입력 요청 3) N을 입력받은 경우 데이터 삭제 없이 회원 삭제 화면을 빠져나갈 것 // 회원 삭제 화면 public void deleteMember() { System.out.println("회원을 삭제합니다."); System.out.print("삭제할 회원의 아이디: "); String userId = sc.nextLine(); System.out.print("삭제 후 복구할 ..

    [실습문제/mvc패턴] ArrayList 값 생성 시 1부터 차례대로 부여한 index 값을 ArrayList 값 삭제 시에도 빈 번호 없이 유지하기

    [문제] Q. ArrayList를 통해 값 생성 시 int userNo를 1부터 차례대로 부여함 데이터를 삭제했을 때, 중간값이 삭제되었다면 index에 빈 번호가 생기지 않도록 그 뒤의 값을 당겨오자. 현재 존재하는 유저는 4명 (초기화 해 놓은 값) 유저는 차례대로 1~4까지의 userNo를 가지고 있음 유저 3에 대한 데이터를 삭제했을 때 ArrayList에 남아 있는 userNo는 1, 2, 4 ▶ 중간값이 삭제된다면 그 뒤의 값을 당겨 자동으로 1, 2, 3이 되도록 하고 싶음 VIEW단의 현재 코드 // 회원 추가 화면 public void insertMember() { System.out.println("== 새로운 멤버 추가 =="); System.out.print("아이디: "); Str..

    [실습문제/mvc패턴] 다양한 입력을 받는 중 하나의 입력이 조건과 일치하지 않는다면 "해당 입력만" 다시 받기

    [문제] Q. 회원을 추가하기 위해 아이디, 비밀번호, 이름, 나이, 성별(M/F), 이메일, 전화번호를 입력받고 해당 값을 ArrayList에 추가해라. 사용자가 성별을 M 또는 F로 입력하지 않은 경우 "성별만 재입력" 받고 싶음 // 회원 추가 화면 public void insertMember() { System.out.println("== 새로운 멤버 추가 =="); System.out.print("아이디: "); String userId = sc.nextLine(); int idCheck = mc.idCheck(userId); if(idCheck != 0) { System.out.println("이미 존재하는 아이디입니다. 다른 아이디를 입력하세요."); insertMember(); return..

    [실습문제 / for문] 입력받은 문자열이 배열의 값과 일치할 때, 일치하지 않을 때를 나누어 1번만 출력하는 법

    [문제] 사용자가 입력한 값이 배열에 있는지 검색하여 있으면 “OOO 치킨 배달 가능“, 없으면 “OOO 치킨은 없는 메뉴입니다“를 출력하세요. 단, 치킨 메뉴가 들어가있는 배열은 본인 스스로 정하세요. ex. 치킨 이름을 입력하세요 : 양념 치킨 이름을 입력하세요 : 불닭 양념치킨 배달 가능 불닭치킨은 없는 메뉴입니다. public void practice9() { // 치킨 이름 입력받기 System.out.print("치킨 이름을 입력하세요: "); String name = sc.nextLine(); // 치킨 메뉴가 들어가 있는 배열 설정(문제에서 스스로 "값을 넣어둔 배열"을 만들어 놓으라고 함) String menu = "후라이드,양념,순살,슈프림양념"; String[] menuArr = me..

    [문법] .length, .length()의 차이

    형태 길이를 반환하는 데이터 타입 .length 배열 .length() 문자열(String Object) => 즉, 배열의 길이를 알고 싶을 때는 arr.length 문자열의 길이를 알고 싶을 때는 str.length()와 같이 사용함

    [정리] 네트워크(Network)

    *네트워크: 여러 대의 컴퓨터들이 연결되어 있는 통신망 => 네트워크를 통해 서로 데이터 교환 가능 IP포트: 컴퓨터의 주민번호, 같은 네트워크 내에서 중복 불가 port번호: 컴퓨터 안에서 작동하는 프로그램의 번호, 같은 컴퓨터 내에서 중복 불가 서버: 클라이언트에게 서비스를 제공하는 pc 또는 프로그램 => 클라이언트의 요청을 처리해서 응답하는 역할이므로 요청이 들어오기 전까지 항상 대기 상태 유지 클라이언트: 서버에 요청하는 pc 또는 프로그램 => 서버에 요청하기 위해 서버의 IP주소, port번호를 알고 있어야 함 InetAddress 클래스: 네트워크 정보(IP주소 관련)를 확인할 수 있는 클래스 localhost: 지역호스트를 뜻하며, 내 PC를 지칭 .getLocalHost() 메소드: 내..

    [문법] 향상된 for문

    for( 값을받아줄수있는변수선언문 : 순차적으로접근할배열또는컬렉션명) { 실행할코드; } => 값을 받아 줄 수 있는 변수 선언문: 향상된 for문 안에서 사용할 변수를 새로 생성한다고 생각하면 됨 => 순차적으로 접근할 배열 또는 컬렉션명: 새로 만든 변수에 반복을 돌릴 (이미 존재하는) 배열명을 기재 for(향상된 for문 안에서 쓸 자료형 변수명 : 반복을 돌릴 기존에 존재하는 배열명) { 실행할코드; } => 쉽게 생각해서 이렇게 사용하면 됨! int[] arr = new int[3]; arr[0] = 1; arr[1] = 2; arr[2] = 3; 일반 for문 사용 for( int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } // ..

    [정리] IO(입출력)

    IO(Input & Output: 입출력) 항상 기준은 프로그램임! 외부 매체는 파일, 모니터, 스피커 등이 있으나 일단 제일 간단하게 실습은 "파일"로 진행 (기준) 프로그램 ===> 파일 프로그램 입력(XXXInputStream) / 출력(XXXOutputStream) 문자스트림: 한 번에 2byte짜리가 이동할 수 있는 넓은 통로 => 입력(XXXReader) / 출력(XXXWriter) - 외부 매체와의 직접적인 연결 여부 기반스트림: 외부 매체와 직접적으로 연결되는 통로 보조스트림: 기반스트림만으로 부족한 성능을 향상시켜 주는 용도의 스트림(보조스트림은 기반스트림 없이는 쓸 수 없음) - 하기 예시는 바이트스트림이며, 문자 스트림 사용 시 FileOutputStream메소드 대신 FileWrit..

    [정리] API, 예외 처리(Exception)

    *API: Application Programming Interface(애플리케이션 프로그램 인터페이스) => 프로그램들이 서로 상호작용하는 것을 도와주는 매개체 == java.lang.Math : 모든 필드가 상수 필드이며, 모든 메소드가 static 메소드이기 때문에(== 싱글톤 패턴) 객체를 생성해서 불러올 필요가 없음 : 생성자도 private이기 때문에 생성 구문 자체를 사용하지 않음 static: 프로그램 시작과 동시에 메모리 영역에 올려두고 공유하며 재사용하는 개념 1. 파이: Math.PI => 상수 필드로 정의되어 있기 때문에 값을 넣거나 지정할 수 없음 2. 올림: Math.ceil(double) 3. 반올림: Math.round(double) 4. 버림: Math.floor(doubl..