2025/02: 45개의 글

2024년 3회 6. 아래 코드에서 출력되는 값을 작성하시오

Posted by nkjok
2025. 2. 9. 21:02 낙서장[2]/오답노트
반응형

 

주어진 C 코드

c
int increment() {
    static int x = 0;
    x += 2;
    return x;
}

int main() {
    int x = 1;
    int sum = 0;
    for (int i = 0; i < 4; i++) {
        x++;
        sum += increment();
    }
    printf("%d", sum);
    return 0;
}

출력 결과

이 코드는 다음과 같은 순서로 동작합니다:

  1. increment() 함수는 static int x 변수로 x를 0으로 초기화합니다.
  2. x는 함수 내에서 유지되며, 각 호출 시 값이 유지됩니다.
  3. 반복문에서 increment() 함수가 4번 호출되며, x는 각각 2, 4, 6, 8로 증가합니다.
  4. 따라서 sum은 2 + 4 + 6 + 8 = 20이 됩니다.
  5. 최종 출력은 20입니다.

자바 코드로 변환

다음은 주어진 C 코드를 자바 코드로 변환한 예제입니다:

java
package gisa;

// 2024년 3회 6. 아래 코드에서 출력되는 값을 작성하시오
public class Counter {
    private static int x = 0;

    public static int increment() {
        x += 2;
        return x;
    }

    public static void main(String[] args) {
        int localX = 1;
        int sum = 0;
        for (int i = 0; i < 4; i++) {
            localX++;
            sum += increment();
        }
        System.out.println(sum);  // 출력: 20
    }
}

설명

  1. Counter 클래스: x 변수를 static으로 선언하여 클래스 레벨에서 유지되도록 합니다.
  2. increment 메서드: x 값을 2씩 증가시키고, 그 값을 반환합니다.
  3. main 메서드:
    • localX 변수를 사용하여 x를 지역 변수로 선언합니다.
    • 반복문을 통해 increment 메서드를 4번 호출하며 sum을 누적합니다.
    • 최종적으로 System.out.println(sum)을 통해 결과를 출력합니다.

 

 

반응형

[Python] 함수 def 사용방법

Posted by nkjok
2025. 2. 9. 18:05 낙서장[1]/94. Python
반응형

Python에서 함수는 재사용 가능한 코드 블록을 정의하고 관리하는 데 중요한 역할을 합니다. def 키워드를 사용하여 함수를 정의합니다. 함수는 코드의 모듈화를 높이고, 중복을 줄이며, 가독성을 향상시킵니다. 함수의 개념, 용도, 사용 방법을 예시와 함께 설명드리겠습니다.

개념

함수는 특정 작업을 수행하는 코드 블록입니다. 함수를 정의할 때는 함수 이름, 입력 매개변수(parameter), 실행할 코드, 그리고 선택적으로 결과를 반환하는(return) 부분으로 구성됩니다.

용도

  • 코드 재사용성: 동일한 코드 블록을 여러 번 작성할 필요 없이 함수를 호출하여 사용할 수 있습니다.
  • 코드 가독성: 코드를 기능별로 분리하여 가독성을 향상시킬 수 있습니다.
  • 유지보수 용이성: 함수를 사용하면 코드를 수정하거나 유지보수하는 데 용이합니다.

사용 방법

  1. 함수 정의
  2. 함수 호출
  3. 입력 매개변수와 반환 값 처리

예시

python
# 함수 정의
def greet(name):
    """
    주어진 이름으로 인사 메시지를 출력하는 함수
    """
    greeting = f"안녕하세요, {name}님!"
    return greeting

# 함수 호출
message = greet("철수")
print(message)  # 출력: 안녕하세요, 철수님!

# 매개변수와 반환 값이 있는 함수 예시
def add(a, b):
    """
    두 숫자를 더하여 반환하는 함수
    """
    return a + b

# 함수 호출
result = add(3, 5)
print(result)  # 출력: 8

# 매개변수가 없는 함수 예시
def say_hello():
    """
    간단한 인사말을 출력하는 함수
    """
    print("Hello, World!")

# 함수 호출
say_hello()  # 출력: Hello, World!

함수의 다양한 활용

  • 기본 매개변수 값 설정: 함수를 정의할 때 기본 값을 설정할 수 있습니다.
  • 키워드 인자: 함수 호출 시 인자의 순서를 바꾸지 않고 이름을 지정하여 값을 전달할 수 있습니다.
  • 가변 인자: 함수가 가변적인 수의 인자를 받을 수 있도록 설정할 수 있습니다.
python
# 기본 매개변수 값 설정
def greet(name="친구"):
    print(f"안녕하세요, {name}님!")

greet()  # 출력: 안녕하세요, 친구님!
greet("영희")  # 출력: 안녕하세요, 영희님!

# 키워드 인자
def introduce(name, age):
    print(f"제 이름은 {name}이고, 나이는 {age}살입니다.")

introduce(age=25, name="철수")  # 출력: 제 이름은 철수이고, 나이는 25살입니다.

# 가변 인자
def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4, 5))  # 출력: 15

이렇게 Python에서 함수는 다양한 방식으로 활용될 수 있으며, 코드의 효율성과 가독성을 높이는 데 큰 도움이 됩니다.

반응형

[Linux-리눅스] 로그 파일의 기본 경로 /var/log

Posted by nkjok
2025. 2. 8. 21:06 OS&기타/Linux-리눅스
반응형

주요 리눅스 로그 파일 및 경로

  • /var/log/messages: 시스템의 일반적인 이벤트와 메시지를 기록합니다.
  • /var/log/syslog: 시스템 관련 로그를 기록합니다.
  • /var/log/auth.log: 인증 관련 로그를 기록합니다.
  • /var/log/kern.log: 커널 관련 이벤트 및 오류를 기록합니다.
  • /var/log/boot.log: 시스템 부팅 중 발생하는 로그 정보를 저장합니다.
  • /var/log/cron.log: 주기적으로 실행되는 cron 작업의 로그를 기록합니다.
  • /var/log/dmesg: 부팅 과정 중 커널 메시지를 기록합니다.
  • /var/log/daemon.log: 시스템 데몬과 관련된 로그를 기록합니다.
  • /var/log/maillog 또는 /var/log/mail.log: 메일 서버 관련 로그를 기록합니다.
  • /var/log/apache2/: Apache 웹 서버 로그를 기록합니다 (예: /var/log/apache2/access.log, /var/log/apache2/error.log).
  • /var/log/nginx/: Nginx 웹 서버 로그를 기록합니다 (예: /var/log/nginx/access.log, /var/log/nginx/error.log).
  • /var/log/faillog: 실패한 로그인 시도를 기록합니다.
  • /var/log/lastlog: 사용자의 마지막 로그인 정보를 기록합니다.
  • /var/log/wtmp: 모든 로그인과 로그아웃 정보를 기록합니다.
  • /var/log/btmp: 실패한 로그인 시도를 기록합니다.
  • /var/log/xorg.0.log: Xorg 서버의 로그를 기록합니다.
 
반응형

[Excel] 엑셀을 사용한 조 편성 방법

Posted by nkjok
2025. 2. 8. 16:41 OS&기타/Excel-엑셀
반응형

엑셀을 사용한 조 편성 방법

  1. 직원 목록 작성
    • A열에 1번부터 12번까지의 직원 이름을 작성합니다.
  2. 조 편성
    • B열부터 M열까지 12개의 열을 사용하여 각 주의 조 편성을 기록합니다. 각 열은 한 주를 나타냅니다.
    • 첫 번째 주에 모든 가능한 조합을 작성합니다. 예를 들어, 1주차에는 다음과 같이 조를 편성할 수 있습니다:
    •  
      A | B
      ---
      1 | 2
      3 | 4
      5 | 6
      7 | 8
      9 | 10
      11 | 12
      
  3. 조 편성 규칙
    • 각 주마다 조를 재편성합니다. 같은 조가 중복되지 않도록 합니다.
    • 엑셀의 조합 함수를 사용하거나, 수동으로 조를 편성할 수 있습니다.
  4. 조건 검토
    • 모든 조가 11주 혹은 12주 동안 중복되지 않는지 확인합니다.
    • 필요한 경우, 조건을 만족하지 않는 조합을 변경합니다.

예시

다음은 엑셀에서 조 편성을 위한 예시입니다:

주차조1조2조3조4조5조6
1주 1-2 3-4 5-6 7-8 9-10 11-12
2주 1-3 2-4 5-7 6-8 9-11 10-12
3주 1-4 2-5 3-6 7-9 8-10 11-12
... ... ... ... ... ... ...
11주 ... ... ... ... ... ...

이와 같이 각 주차마다 직원 조합을 달리하여 겹치지 않도록 조 편성을 할 수 있습니다. 엑셀의 수식과 매크로를 사용하면 더 효율적으로 작업할 수 있습니다.

반응형

[SpringBoot] JpaRepository save, findAll, findById, delete 기능

Posted by nkjok
2025. 2. 8. 16:21 낙서장[1]/2. SpringBoot
반응형

JpaRepository 주요 기능

1. save

개념

  • 객체를 데이터베이스에 저장하거나, 이미 존재하는 엔티티 객체를 업데이트하는 데 사용됩니다.

용도

  • 새로운 엔티티를 데이터베이스에 등록할 때
  • 이미 존재하는 엔티티를 수정할 때

사용 방법

java
@PostMapping("/posts")
public Post createOrUpdatePost(@RequestBody Post post) {
    return postRepository.save(post);
}

2. findAll

개념

  • 데이터베이스에 저장된 모든 엔티티 객체를 조회합니다.

용도

  • 데이터베이스에 있는 모든 레코드를 가져올 때

사용 방법

java
@GetMapping("/posts")
public List<Post> getAllPosts() {
    return postRepository.findAll();
}

3. findById

개념

  • 주어진 ID로 데이터베이스에서 특정 엔티티 객체를 조회합니다.

용도

  • 특정 레코드를 ID로 조회할 때

사용 방법

java
@GetMapping("/posts/{id}")
public ResponseEntity<Post> getPostById(@PathVariable Long id) {
    Optional<Post> post = postRepository.findById(id);
    return post.map(ResponseEntity::ok)
               .orElseGet(() -> ResponseEntity.notFound().build());
}

4. delete

개념

  • 주어진 ID로 데이터베이스에서 특정 엔티티 객체를 삭제합니다.

용도

  • 특정 레코드를 삭제할 때

사용 방법

java
@DeleteMapping("/posts/{id}")
public ResponseEntity<Void> deletePost(@PathVariable Long id) {
    postRepository.deleteById(id);
    return ResponseEntity.noContent().build();
}

요약

  • save: 엔티티 객체를 저장하거나 업데이트
  • findAll: 모든 엔티티 객체를 조회
  • findById: 특정 ID로 엔티티 객체를 조회
  • delete: 특정 ID로 엔티티 객체를 삭제

JpaRepository는 위의 4가지 주요 기능을 자동으로 구현해주므로, 별도의 쿼리 작성 없이도 쉽게 사용할 수 있습니다.

반응형