#include <stdio.h>
int main(){
    int a = 5;
    if (10 < a < 20)
        a++;
    printf("%d", a);
}

출력 결과 : 6

 

이유는 if 조건을 비교할 때 뒷부분부터 비교하는데,

a < 20 부분을 만족하기에 a가 1증가하여 출력 결과가 6으로 됨.

 

 

제대로 결과를 얻기 위해서는 하나씩 조건을 걸어 주는 게 중요하다.

#include <stdio.h>
int main(){
    int a = 5;
    if (10 < a && a < 20)
        a++;
    printf("%d", a);
}

출력 결과 : 5

 

'컴퓨터관련 > 프로그래밍' 카테고리의 다른 글

[C] ab+ba=99  (0) 2020.08.20
[자바] 사칙연산  (0) 2019.03.27
[자바] 배열의 메소드  (0) 2019.03.27
[자바 ] 난수로 구성된 배열의 합계 구하기  (0) 2019.03.27
[자바] 배열 역순으로 출력하기  (0) 2019.03.27

DRM(디지털 권리 관리, Digital Rights Management)은 

디지털 콘텐츠의 불법 복제 및 무단 유통을 막고, 저작권자의 권리를 보호하기 위해 접근권과 사용 조건을 통제하는 기술이다.

 

DRM의 원리와 주요 구성 요소
  • 접근 제어: 인증(로그인 등)과 라이선스 발급을 통해 오직 허가된 사용자만 콘텐츠 이용 가능.
  • 암호화: 콘텐츠 자체를 암호화해, 유효한 사용자만 복호화하여 열람 또는 재생할 수 있게 함.
  • 사용권/정책 관리: 열람 기기, 이용 시간, 재생/인쇄 횟수 등 콘텐츠 활용 조건을 정책으로 설정·통제.
  • 사용 추적 및 모니터링: 다운로드, 재생, 유포 상황을 관리·감시하여 불법 이용을 탐지.

 

DRM의 적용 예시 및 역할
  • 음악, 영화, 전자책, 소프트웨어 등 디지털 저작물 전반에서 불법 복제와 무단 배포 방지 목적으로 활용.
  • 기업이나 정부의 기밀 자료, 연구 문서, 계약서 등 민감 정보 보호에도 사용됨.
  • 일부 DRM은 콘텐츠에 워터마킹, 핑거프린팅 등 추적 기능을 결합해 유통 경로 및 불법 배포자 식별에 활용.

 

장점과 쟁점
• 저작권자 및 제작자의 정당한 수익 보호, 창작자 권익 증진이라는 순기능이 있다.
• 반면, 정당한 구매자에게 불편을 줄 수 있으며 정보 접근권 제한이나 기술 의존성 등 논란도 존재.
DRM은 디지털 시대의 콘텐츠 유통 질서를 지키는 대표적 저작권 보호 기술로, 산업·교육·비즈니스 영역 전반에 필수적으로 적용되고 있다.

'컴퓨터관련 > 보안 관련' 카테고리의 다른 글

핑거프린팅(Fingerprinting)  (0) 2025.09.12
워터마크(Watermark)  (0) 2025.09.12
스테가노그래피(Steganography)  (0) 2025.09.12

핑거프린팅(Fingerprinting)은 디지털 콘텐츠 각각에 고유한 식별 정보를 부여하거나, 

특징을 추출해 콘텐츠의 출처와 저작권 보호에 활용하는 기술이다.

 

원리와 구조
  • 콘텐츠에서 고유 특징(feature)을 추출해 디지털 서명(signature) 또는 식별자(identifier)를 만든 후 이를 데이터베이스 에 저장한다.
  • 새로운 콘텐츠가 유통될 때, 동일한 방식으로 생성된 특징값과 데이터베이스를 비교하여 저작권 침해, 불법 복제 여부를 판별할 수 있다.
  • 워터마크가 콘텐츠 내부에 정보를 직접 삽입하는 방식이라면,

     핑거프린팅은 콘텐츠 ‘자체의 속성’을 활용하거나 혹은 사용자의 고유 ID 등 전송 정보와 결합하는 식별 방식도 존재한다.

 

목적과 응용 분야
  • 저작권 보호 및 불법 유통 추적: 각 콘텐츠 별로 고유 식별값을 부여하므로, 음원·영상, 문서, 게임 등 모든 디지털 저작물에 적용 가능
  • 불법 배포자 식별: 콘텐츠에 구매자, 유통 채널 등 정보를 은닉해, 유출 시 불법 유포자를 역추적할 수 있다.
  • 서비스 응용: 음악 인식 서비스(Shazam 등)나 온라인 스트리밍 플랫폼, 전자책, 고가 브랜드 제품의 위변조 방지에도 활용된다.

 

유형 및 특징
  • 강건한(Robust) 핑거프린팅: 압축, 변형, 변환에도 고유성을 유지, 멀티미디어 콘텐츠에 효과적.
  • 지각적(Perceptual) 핑거프린팅: 인간의 인지 방식에 맞게 시각·청각 특성을 효과적으로 반영.
  • 암호학적 핑거프린팅: 해시 알고리즘 등 수학 공식 기반으로 콘텐츠 무결성·신뢰성 검증.
핑거프린팅은 디지털 저작권 보호와 추적의 핵심 기술로, 워터마크와 함께 콘텐츠의 안전한 유통과 불법 이용 방지에 널리 활용된다

'컴퓨터관련 > 보안 관련' 카테고리의 다른 글

DRM(Digital Rights Management)  (0) 2025.09.12
워터마크(Watermark)  (0) 2025.09.12
스테가노그래피(Steganography)  (0) 2025.09.12

워터마킹(워터마크)은 디지털 콘텐츠에 저작권 정보나 사용자를 식별할 수 있는 정보를 삽입하는 기술로, 

멀티미디어 데이터(이미지, 오디오, 비디오 등)의 출처 증명 및 불법 복제 방지에 널리 활용된다.


워터마킹의 원리와 구조
  • 워터마킹은 원본 데이터 내부에 특정 신호나 정보를 보이거나 보이지 않게 삽입하는 방식이다.
  • 가시적 워터마크(Visible Watermark): 사진 위 저작권 표시, 배경 로고 등 실제로 사람이 인지할 수 있는 형태.
  • 비가시적 워터마크(Invisible Watermark): 사용자가 식별하지 못하도록 정보가 은닉되어, 필요시 전용 알고리즘으로만 추출이 가능.

 

주요 목적과 기능 
  • 저작권 보호: 소유권자가 디지털 콘텐츠 내에 고유 정보를 삽입, 불법 복제 시 정당한 권리 주장 가능.
  • 위조·변조 방지: 데이터 조작 시 워터마크가 손상되어 위조 또는 변조 사실을 판별할 수 있음.
  • 불법 유포자 추적: 구매자 ID, 유통 경로 등 정보를 삽입해 불법 복제된 콘텐츠의 배포자를 역추적.
  • 콘텐츠 보호 및 통제: 콘텐츠의 무분별한 상업적 사용과 무단 복사를 방지하는 역할.

 

분류 및 응용
• 강성 워터마크: 변형·가공에도 사라지지 않도록 내구성이 강함.
• 연성 워터마크: 데이터 변형 시 쉽게 손상되어 변조 감지에 유리함.
• 포렌식 워터마킹: 이용자별로 개별적 신호를 삽입, 유통 경로·사용자 추적에 탁월함.
워터마킹은 디지털 환경에서 저작권 보호와 불법 유통 방지 등 다양한 방면에서 핵심적 보안 기술로 자리 잡고 있다.

'컴퓨터관련 > 보안 관련' 카테고리의 다른 글

DRM(Digital Rights Management)  (0) 2025.09.12
핑거프린팅(Fingerprinting)  (0) 2025.09.12
스테가노그래피(Steganography)  (0) 2025.09.12

스테가노그래피(Steganography)

그리스어 ‘steganos(숨겨진)’와 ‘graphein(쓰기)’의 합성어로, 보이지 않게 정보를 숨긴다는 뜻을 가진다.

 

 

- 스테가노그래피는 정보의 존재 자체를 감추는 기술로,

   메시지나 데이터를 다른 메시지, 이미지, 오디오 파일 등 내부에 은밀하게 숨겨 전달하는 정보 보안 기법이다.


- 암호화(Cryptography)가 메시지의 ‘내용’을 보호하는 것과 달리,

   스테가노그래피는 데이터가 전송된다는 사실 그 자체도 감춘다.

 

- 디지털 파일(이미지, 오디오, 동영상 등)의 일부 데이터를 변조하거나 삽입하여 메시지를 숨기는 것이 일반적이다.

 

- 스테가노그래피는 보안, 디지털 저작권 보호, 악성코드 은닉 등 다양한 분야에서 현실적인 영향을 주고 있는 정보 은닉의 대표 기술이다.

'컴퓨터관련 > 보안 관련' 카테고리의 다른 글

DRM(Digital Rights Management)  (0) 2025.09.12
핑거프린팅(Fingerprinting)  (0) 2025.09.12
워터마크(Watermark)  (0) 2025.09.12

 

더보기

#include "stdio.h"
void main(void)
{
    int count = 0, t_count = 0, max;
    for (int i=1; i <= 5000; i++)
    {
        for(int j=1; j <= i; j++)
        {
            if(i%j==0)
            count++;     
        }
        if(count==2)
        {
            t_count++;
            max = i;
        }
        count = 0;
    }
    printf("5,000까지의 소수 갯수 : %d\n", t_count);
    printf("5,000까지의 소수 중 가장 큰 수 : %d\n", max);
}

<결과> 

5,000까지의 소수 갯수 : 669

5,000까지의 소수 중 가장 큰 수 : 4999

더보기

#include <stdio.h>

 

int main(void){

 

    int a, b;

    int sum;

    

    for (a=1; a<10; a++)

    {

        for(b=1; b<10; b++)

        {

            sum = (a*10)+b + (b*10)+a;

            if (sum == 99)

                printf(" %d%d\n+%d%d \n--- \n %d\n\n", a, b, b, a, sum);

        }

    }

    return 0;

}

[result]

 

  18

+81 

--- 

 99

... 

import java.util.*;

class PlusMinus {
int plus, minus;
public String plus (int x, int y) {
plus = x + y;
return "(덧셈 결과) " + x + " + " + y + " = " + plus;
}
public String minus (int x, int y){
minus = x - y;
return "(뺄셈 결과) " + x + " - " + y + " = " + minus;
}
}

class MultiDiv extends PlusMinus{
int multi;
double div;
public String multi(int x, int y) {
multi = x * y;
return "(곱셈 결과) " + x + " * " + y + " = " + multi;
}
public String div(int x, int y){
div = (double) x / y;
return "(나눗셈 결과) " + x + " * " + y + " = " + div;
}
}

class cal{
public static void main(String args[]){
MultiDiv strin = new MultiDiv();
String plus, minus, multi, div;
System.out.print("덧셈과 뺄셈을 할 두개의 정수를 입력하세요.(공란으로 구분): ");
Scanner x = new Scanner(System.in);
int num1 = x.nextInt();
int num2 = x.nextInt();
plus = strin.plus(num1, num2);
minus = strin.minus(num1, num2);
multi = strin.multi(num1, num2);
div = strin.div(num1, num2);
System.out.println(plus);
System.out.println(minus);
System.out.println(multi);
System.out.println(div);
}
}

(결과 예시)

덧셈과 뺄셈을 할 두개의 정수를 입력하세요.(공란으로 구분): 22 11

(덧셈 결과) 22 + 11 = 33

(뺄셈 결과) 22 - 11 = 11

(곱셈 결과) 22 * 11 = 242

(나눗셈 결과) 22 * 11 = 2.0

'컴퓨터관련 > 프로그래밍' 카테고리의 다른 글

C언어 출력값 고민..  (0) 2025.10.01
[C] ab+ba=99  (0) 2020.08.20
[자바] 배열의 메소드  (0) 2019.03.27
[자바 ] 난수로 구성된 배열의 합계 구하기  (0) 2019.03.27
[자바] 배열 역순으로 출력하기  (0) 2019.03.27

+ Recent posts