생성자와 메소드의 개념이 헷갈려 찾아보는데 

 

생성자는 다른 클래스가 현 클래스를 객체로 만들 때 자동 호출되는 메서드(함수)를 뜻하고 객체의 초기화를 담당하는 특별한 메서드.... 

 

음.... 객체를 초기화...? 무슨말이지... 의미는 알겠다만 직관적으로 이해가.....

 

그래서!! 내가 간단히 설명해주겠다!!

 

객체를 초기화한다 = 객체를 생성하고 초기 상태로 설정한다.

 

이렇게 생각하니 막연하게 생각하던 생성자의 개념이 비로소 이해되었다!!


그 외에도 추가적으로 기억해야 할 생성자의 특징을 말해보자면

(내 기준 잘 까먹는ㅎㅎ 공부 블로그이기 때문에 양해 부탁..드림돠)

 

  • 생성자는 클래스와 동일한 이름을 가진다.
  • 반환타입을 명시하지 않는다!  => 그러므로 void 사용 불가!!

절대 절대 까먹지도 헷갈리지 말아야 할 개념이다.

 

 

 

 

헷갈리지 말자! 정복하자!

 

이상 코딩하는 망고씨였습니다! 

제네릭 타입은 자바에서 변수, 클래스, 메소드 등을 선언할 때 사용되는 타입 매개변수입니다. 

 

제네릭은 재사용성과 타입 안정성을 높이기 위해 도입된 기능! 컴파일 시점에서 타입을 확인 할 수 있게 해줍니다.

일반적으로 클래스나 메소드를 정의할 때, 특정한 타입을 사용하려면 해당 타입을 직접 지정해야 했습니다. 

 

예를 들어, 정수를 저장하는 동적 배열을 만들기 위해서는 int 타입의 배열을 선언해야 했습니다. 

그러나 제네릭을 사용하면 타입을 일반화할 수 있어, 재사용성이 높아지고 다양한 타입에 대해 유연하게 동작할 수 있습니다.



제네릭은 < > 기호로 표현되며, 선언할 때 타입 매개변수를 지정합니다. 


예를 들어, ArrayList은 제네릭을 사용한 컬렉션 클래스입니다.

ArrayList을 선언할 때 < > 안에 원하는 타입을 지정하여 사용할 수 있습니다.

 

아래는 ArrayList에 문자열을 저장하는 예시입니다:

ArrayList<String> list = new ArrayList<>();


위의 코드에서 ArrayList<String>은 문자열을 저장하는 ArrayList을 생성하는 것을 의미합니다. 

String은 여기서 제네릭 타입으로 사용되고, ArrayList의 요소 타입이 됩니다. 

 

이렇게 선언된 list는 문자열만 저장할 수 있으며, 컴파일러는 타입 체크를 통해 문자열 외의 다른 타입이 추가되지 않도록 검사합니다.

제네릭을 사용함으로써 코드의 유연성과 안정성을 높일 수 있으며, 재사용 가능한 클래스와 메소드를 작성할 수 있습니다.

 

 

 

 

헷갈리지 말자! 정복하자!

이상 코딩하는 망고씨였습니다!

URL 구성

출처: 생활코딩_node.js 강의_9.URL의 이해

path는 컴퓨터 안에 있는 어떤 디렉토리에 어떤 파일인지를 가리킨다.

 

 

query string 값을 변경하면 웹서버에게 어떤 데이터를 전달할 수 있다.

ex. 내가 읽고 싶은 정보는 html 그리고 12 page야

쿼리 스트링의 시작은 ?로 표시한다.
값과 값 사이는 &로 구분한다.
값의 이름과 값은 =로 구분한다.

 

 

 


출처:

https://www.youtube.com/watch?v=Zhbvui_T9VY

데이터베이스설계 수업 과제해야 하는데 과제가 문제가 아니라 올바른 비번을 입력해도 비밀번호가 틀렸다며 로컬로 접속이 안돼서 몇날 몇일을 오류 코드를 들고 인터넷을 뒤져보고 따라하고 프로그램을 지웠다 설치했다를 반복해도 해결되지 않았었다.....눙물......ㅠ

그러던 와중 마감일이 되었고 어려워서가 아니라 접속을  못해서 과제를 못할 상황에 처해있다가 한 블로그를 발견하게 됬다. 출처는 밑에 남긴다.

 

해결방법은 mysql shell 접속을 하고

 \connect root@localhost:3306

이렇게 쳐주면 다음과 같이 새로운 세션이 만들어졌다고 나온다.

Creating a session to 'root@localhost:3306'
Please provide the password for 'root@localhost:3306':

그리고는 비번을 만들어달라고 나온다. 이때 비번을 입력하고 잘 기억하도록 하자!!!!!!

Save password for 'root@localhost:3306'? [Y]es/[N]o/Ne[v]er

비번 입력 후 비밀번호 저장할거냐구 물어본다면 보안을 위해 Y를 입력해준다.


여기까지 해주면 다 된것이다.... 수고했다 망고..

\sql

spl접속을 확인해주고 잘 접속이 된 것을 확인했으면 자 이제 과제를 하러 가자


출처:

https://iamwhat.tistory.com/23

좀비 프로세스와 고아 프로세스는 서로 다른 개념입니다.

좀비 프로세스는 자식 프로세스가 종료되었으나 부모 프로세스가 wait() 함수를 호출하지 않아서 자원을 해제하지 못한 상태의 프로세스를 말합니다. 이런 프로세스는 프로세스 테이블에는 남아있지만 더 이상 실행되지 않으며, 시스템의 자원을 낭비하게 됩니다.

고아 프로세스는 자식 프로세스가 종료되었으나 부모 프로세스가 이를 처리하지 못한 상태의 프로세스를 말합니다. 이런 프로세스는 부모 프로세스가 없어져서 init 프로세스가 새로운 부모가 되고, init 프로세스가 자동으로 wait() 함수를 호출하여 자식 프로세스의 자원을 해제합니다.

따라서, 좀비 프로세스와 고아 프로세스는 모두 자원 낭비를 초래할 수 있습니다. 하지만, 해결 방법이 다릅니다. 좀비 프로세스는 부모 프로세스가 wait() 함수를 호출하면서 해제할 수 있고, 고아 프로세스는 init 프로세스가 자동으로 처리해줍니다.

 

드래그하면 답변이 보입니다!

'Linux' 카테고리의 다른 글

[리눅스] process 관련 system call 설명  (0) 2023.04.04
[리눅스] vi파일 명령어_우분투  (0) 2023.03.31

system call에 대한 간단한 설명

  • fork() system call은 새로운 프로세스를 생성 할 때 사용된다.
  • wait() system call은 자식 프로세스가 끝날때 까지 기다릴 때 사용된다.
  • getpid() system call은 현재 프로세스의 id 를 가져온다.
  • getppid() system call은 부모 프로세스의 id(parent pid) 를 가져온다.

 

이해를 돕기 위한 코드

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
    pid_t returned_pid;
    printf("Hello, my pid is %d\n", getpid());

    if((returned_pid=fork()) < 0){
        perror("fork error"); exit(1);
    }
    else if(returned_pid == 0){
        printf("child: pid = %d, ppid = %d\n", getpid(), getppid());
    }
    else{
        wait(NULL); // 자식 프로세스가 모두 끝날 때까지 기다린다.
        printf("parent: I created child with returned_pid=%d\n", returned_pid);
    }

    printf("Bye, my pid is %d\n", getpid());

    return 0;
}

 

위 소스 코드에 대한 설명

먼저, main문이 실행이 되면 Hello, my pid is 부모pid가 출력된다.

  • fork() 함수를 호출하는 순간, 자식 프로세스, 부모 프로세스의 분기가 시작되서 하위의 내용을 각각 실행한다.
  • fork함수의 반환 값은 자식 프로세스일 경우 0을 반환하고, 부모 프로세스일 경우 0 이상의 값을 반환한다.
  • 분기가 시작되었을 경우 자식 프로세스가 먼저 실행될 지, 부모 프로세스가 먼저 실행될 지는 알 수 없다.
  • 하지만 wait() system call을 사용했을 경우, 자식 프로세스가 종료될 때까지 부모 프로세스는 기다린다.
  • 때문에 child: pid = 자식 프로세스의 pid, ppid = 부모 프로세스의 pid를 출력하고, parent: I created child with pid = 자식 프로세스의 pid이 출력되게 된다.

 

아래는 이해를 돕기 위한 그림입니다. (부모 프로세스 pid: 135, 자식 프로세스 pid: 136이라 할 때)

 

위 소스코드의 수행결과

- 부모 프로세스 pid: 135, 자식 프로세스 pid: 136이라 할 때의 수행 결과

Hello, my pid is 135
child: pid = 136, ppid = 135
Bye, my pid is 136
parent: I created child with pid=136
Bye, my pid is 135

 

출처: https://wkdtjsgur100.github.io/process-system-call/

'Linux' 카테고리의 다른 글

[Linux] what is diffrent zombie and orphan process?  (0) 2023.04.06
[리눅스] vi파일 명령어_우분투  (0) 2023.03.31

+ Recent posts