#include <stdio.h>
int main() {
int i, sum = 0;
for(i = 1; i <= 100; i++) {
sum += i * i;
}
printf("1부터 100까지의 제곱의 합: %d", sum);
return 0;
}
이 코드에서는 for 루프를 사용하여 i를 1에서 100까지 증가시키면서 i의 제곱을 sum 변수에 더해나갑니다. 즉, sum 변수는 1부터 i까지의 모든 수의 제곱의 합을 나타냅니다. 마지막으로, printf 함수를 사용하여 "1부터 100까지의 제곱의 합: "과 함께 sum 변수의 값을 출력합니다.
#include <stdio.h>
int main() {
int i, sum = 0;
for(i = 1; i <= 100; i++) {
sum += i;
}
printf("1부터 100까지의 합: %d", sum);
return 0;
}
이 코드에서는 for 루프를 사용하여 i를 1에서 100까지 증가시키면서 sum 변수에 i를 더해나갑니다. 즉, sum 변수는 1부터 i까지의 모든 수의 합을 나타냅니다. 마지막으로, printf 함수를 사용하여 "1부터 100까지의 합: "과 함께 sum 변수의 값을 출력합니다.
아래는 C언어를 사용하여 1부터 100까지의 수 중에서 3의 배수와 5의 배수를 구하는 방법입니다.
#include <stdio.h>
int main() {
int i;
for(i = 1; i <= 100; i++) {
if(i % 3 == 0 || i % 5 == 0) {
printf("%d\n", i);
}
}
return 0;
}
이 코드에서는 for 루프를 사용하여 i를 1에서 100까지 증가시키면서 각 숫자가 3 또는 5의 배수인지 확인합니다. 이를 위해 if 문을 사용하여 i가 3 또는 5로 나누어 떨어지는지 확인합니다. 나머지 연산자(%)는 i를 3 또는 5로 나누었을 때의 나머지를 반환합니다. 따라서 i % 3 == 0 또는 i % 5 == 0는 i가 각각 3 또는 5의 배수인지를 검사합니다. 만약 3 또는 5의 배수인 경우 printf 함수를 사용하여 i를 출력합니다.
최초의 인공지능은 20세기 초반의 계산 기계들과 로봇들이었습니다. 그러나 이들은 우리가 오늘날에 생각하는 인공지능과는 매우 다릅니다.
인공지능의 개념은 1956년 다트머스 컨퍼런스에서 처음으로 제안되었습니다. 이 컨퍼런스는 조지 다니엘 와이츠(George Daniel Weiss)와 존 매카시(John McCarthy)가 중심 인물로 참석하여 진행되었습니다. 이 컨퍼런스에서 인공지능은 "기계가 인간의 지능적 능력을 시뮬레이션할 수 있는 능력"으로 정의되었습니다.
최초의 인공지능 시스템은 1951년에 제작된 크리스토퍼 스트라치(Cristopher Strachey)의 '오감자(OXO)' 게임입니다. 이 게임은 이전에는 존재하던 틱택토 게임의 전자 버전으로, 컴퓨터가 인간과 경쟁하는 첫 번째 게임이었습니다. 그러나 이 시스템은 단순한 게임 시뮬레이션에 불과했기 때문에 인공지능의 개념 자체는 아니었습니다.
1956년, 존 매카시와 함께 인공지능 연구를 수행하던 앨런 뉴웰(Allen Newell)과 허버트 사이먼(Herbert Simon)은 로봇에게 지능적인 능력을 부여하는 시스템을 제안했습니다. 이 시스템은 로봇이 센서를 사용하여 주변 환경을 감지하고, 그 정보를 사용하여 문제를 해결하는 능력을 가지고 있었습니다.
그러나 이들의 연구는 단순한 모델링 기술에 머물렀고, 이후에도 인공지능 기술은 적극적으로 연구되지 않았습니다. 이유는 기존의 컴퓨터 시스템은 인간의 뇌와는 매우 다르기 때문에, 지능적인 능력을 가진 시스템을 만드는 것이 어렵기 때문이었습니다.
그러나 21세기 초반, 인공지능 기술은 급격한 발전을 이루었습니다. 특히 딥러닝 알고리즘과 GPU 등의 하드웨어 기술의 발전으로 인공지능 기술은 현재의 수준에 이르게 되었습니다.
마스터 서버와 마찬가지로, 슬레이브 서버의 server-id를 2로 설정하고, binary logging을 활성화하며, database_name 데이터베이스의 모든 변경 사항을 로깅하도록 설정합니다.
마스터와 슬레이브 간의 계정 설정: 마스터와 슬레이브 간에 데이터를 동기화하려면 마스터 서버에서 슬레이브 서버에 대한 계정을 생성해야 합니다. 다음 SQL 문을 사용하여 계정을 생성합니다.
CREATE USER 'replication_user'@'slave_server_ip' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_server_ip';
위 SQL 문에서는 슬레이브 서버의 IP 주소를 slave_server_ip로 대체하고, password를 실제 암호로 대체합니다.
마스터 서버에서 binlog 정보 확인: 마스터 서버에서 다음 명령을 실행하여 binlog 파일 이름과 위치 정보를 확인합니다.
SHOW MASTER STATUS;
위 명령은 마스터 서버의 binlog 파일 이름과 파일 위치를 확인할 수 있습니다.
슬레이브 서버에서 replication 설정: 슬레이브 서버에서 다음 명령을 실행하여 마스터 서버와의 replication을 설정합니다.
CHANGE MASTER TO
MASTER_HOST='master_server_ip',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001', -- 마스터 서버에서 확인한 파일 이름으로 대체
MASTER_LOG_POS=4;
위 명령에서는 마스터 서버의 IP 주소, replication_user 계정, 암호 및 마스터 서버에서 확인한 binlog 파일 이름 및 위치를 사용하여 슬레이브 서버의 replication을 설정합니다.
슬레이브 서버 시작: 슬레이 이중화 설정을 마치고 슬레이브 서버를 시작합니다. 이제 마스터 서버에서 데이터를 변경하면 이 변경 사항이 슬레이브 서버로 전파됩니다.
이중화 동기화 확인: 이제 마스터 서버와 슬레이브 서버가 동기화되는지 확인해야 합니다. 슬레이브 서버에서 다음 명령을 실행하여 replication 상태를 확인합니다.
SHOW SLAVE STATUS\G
위 명령은 슬레이브 서버의 replication 상태를 상세히 보여줍니다. Slave_IO_Running과 Slave_SQL_Running 항목이 모두 'Yes'로 설정되어 있어야 마스터 서버와 슬레이브 서버가 동기화되었음을 나타냅니다.