OSI 7 계층 이란?
TCP/IP 에 대해서 설명하고, 왜 계층이 OSI와는 다르게 4계층인지 설명하기.

1. OSI 7계층은 통신이 일어나는 과정을 7단계로 정의한 국제 표준 통신 규약이다

각각의 단계는 다음과 같다.

1. 물리 계층(Physical Layer): 데이터를 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간. 통신케이블이나 허브같은 장비가 있다.
2. 데이터 링크 계층(Data Link Layer): 물리계층으로 송/수신되는 정보를 확인하고 오류 없는 통신을 위해 여러 역할을 수행한다. MAC주소를 통해 통신함. 브릿지나 스위치 같은 장비가 있다.
3. 네트워크 계층(Network Layer): 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 계층. 라우터를 통해, 경로를 선택하여 IP주소를 지정하고 경로에 따라 패킷을 전달해준다. 장비로는 라우터가 존재한다.
4. 전송 계층(Transport Layer): 두 호스트 시스템으로부터 발생하는 데이터의 흐름을 제공해준다.
5. 세션 계층(Session Layer): 통신 시스템 사용자 간의 연결을 유지 및 설정한다.
6. 표현 계층(Presentation Layer): 세션 계층 간의 주고받는 인터페이스를 일관성 있게 제공한다.
7. 응용 계층 (Application Layer): 사용자가 네트워크에 접속할 수 있도록 서비스를 제공한다.

위와 같은 과정이 어떻게 이루어지냐면

이메일을 전송할때,
응용계층: 이메일 프로그램을 통해 이메일을 작성한다.
표현계층: 공통된 표현 형식으로 이메일을 변환하거나 암호화, 압축을 수행한다.
세션계층: 데이터의 동기화를 위해 일정한 길이마다 sync를 삽입하여 전송 계층으로 데이터를 전달한다.
전송계층: 발신지와 목적지의 주소를 지정하고, 연결 방식, 흐름제어, 오류제어를 한다. 그리고 데이터를 전송할 수 있는 세그먼트 단위로 나눈다.
네트워크 계층: 발신지와 목적지의 주소가 아닌 라우팅에 필요한 논리주소를 설정하고, 패킷에 대한 라우팅 정보를 삽입한다.
데이터 링크 계층: 프레임 단위로 데이터를 나눈다. 그리고 MAC주소를 지정하고, 각 양 끝단의 속도차이에 대해 원활하게 해주기 위한 흐름제어를 한다. 또한 데이터의 오류를 막기 위해 CRC방법이나 체크섬 방식을 사용해 데이터를 받는 쪽에서 데이터의 오류를 검사할 수 있도록 설정한다.
물리계층: 전송매체가 일반 케이블인지, 광 케이블인지 등의 설정을 한다. 그리고 전송방식과 데이터를 회선으로 보내기 위한 전기적인 변환을 담당한다.

2. TCP/IP에 대한 IBM의 공식 문서이다.

컴퓨터가 서로 통신하는 경우, 특정 규칙이나 프로토콜을 사용하여 순서대로 데이터를 전송 및 수신할 수 있습니다. 전세계를 통해 가장 일상적으로 사용되는 프로토콜 세트 중 하나가 TCP/IP(Transmission Control Protocol/Internet Protocol)입니다. (그러나 유럽에서는 대부분 X.25 프로토콜을 사용합니다.) TCP/IP의 사용에 있어서 일부 일반적인 기능은 메일, 컴퓨터 간 파일 전송, 원격 로그인입니다.

mail 사용자 명령, 메시지 처리기(MH) 사용자 명령, sendmail 서버 명령은 시스템 사이에서 메일을 송수신하기 위해 TCP/IP를 사용할 수 있고, 기본 네트워크 유틸리티(BNU)는 시스템 사이에서 파일 및 명령을 송수신하기 위해 TCP/IP를 사용할 수 있습니다.
TCP/IP는 컴퓨터 사이의 통신 표준 및 네트워크의 라우팅 및 상호연결에 대한 자세한 규칙을 지정하는 프로토콜 스위트(Protocol Suite)입니다. 이는 인터넷에서 광범위하게 사용되며 이를 통해 학회, 대학, 정부, 기업에서 서로 통신할 수 있습니다.

TCP/IP는 네트워크에 연결된 여러 컴퓨터(호스트) 사이의 통신을 허용합니다. 각 네트워크는 해당 네트워크의 호스트와 통신하는 다른 네트워크에 연결될 수 있습니다. 패킷 교환 및 스트림 전송으로 작동하는 많은 유형의 네트워크 기술이 있지만, TCP/IP는 하드웨어에 구애받지 않는다는 하나의 큰 장점이 있습니다.

인터넷 프로토콜이 전송 단위를 정의하고 해당 전송 방법을 지정하기 때문에, TCP/IP는 정보를 연결하고 교환하는 많은 유형의 네트워크 기술을 허용하며, 네트워크 하드웨어의 세부사항들을 숨길 수 있습니다. 인터넷 주소는 네트워크의 모든 머신이 네트워크상의 다른 머신과 통신할 수 있도록 합니다. TCP/IP는 또한 사용자가 필요로 하는 많은 통신 서비스에 대한 표준을 제공합니다.

TCP/IP는 컴퓨터 시스템을, 네트워크에 접속하여 다른 인터넷 호스트와 통신할 수 있는 인터넷 호스트로 만드는 기능을 제공합니다. TCP/IP에는 다음을 수행할 수 있는 명령과 기능이 포함됩니다.

시스템 사이에서 파일 전송
- 원격 시스템에 로그인
- 원격 시스템에서 명령실행
- 원격 시스템에 파일 인쇄
- 원격 사용자에 이메일 전송
- 원격 사용자와 대화식 통신
- 네트워크 관리

“주: TCP/IP는 기본 네트워크 관리 기능을 제공합니다. 단순 네트워크 관리 프로토콜(SNMP)은 더 많은 네트워크 관리 명령과 기능을 제공합니다.”

TCP/IP는 OSI와는 다르게 4계층으로 구성된다.

 

 

OSI 7계층은, 컴퓨터와 간 패킷 통신을 위해 거쳐야하는 7개의 계층을 의미합니다.

TCP/IP 4계층은, TCP/IP 프로토콜 통신 과정에 초점을 맞추어, OSI 7계층을 좀 더 단순화 시킨 계층을 의미합니다.

TCP/IP 4계층은 OSI 참조 모델을 기반으로 하여, 좀 더 실무에 최적화하여, 웹 서비스에 맞춰 단순화 시킨 모델입니다.

TCP/IP 모델은 인터넷 개발 이후 꾸준히 표준화되어 신뢰성이 우수한 반면

OSI 모델은 표준 모델이나 실질적으로 많이 구현되지 않아 신뢰성이 저하되어 있습니다.

TCP/IP모델은 OSI 참조 모델에서 '세션, 표현, 응용 계층'을 '응용 계층'으로 통합하였고,

'네트워크 계층'을 '인터넷 계층'으로, '물리, 데이터링크 계층'을 '네트워크 인터페이스 계층'으로 통합했습니다.

 

이러한 계층적인 구조는 아래와 같은 특징을 가지고 있습니다.

  • 각 계층별 처리 역할이 다르기 때문에, 계층별 간섭을 최소화할 수 있습니다.
  • 특정 계층에서 문제가 생기면, 해당 계층을 살펴보면 되기 때문에, 유지 보수가 편리합니다.
  • 다른 계층끼리는 데이터의 전달 과정을 구체적으로 알 필요가 없기 때문에, 데이터의 캡슐화와 은닉이 가능합니다.

 

https://blog.daum.net/inira/6

https://nordvpn.com/ko/blog/tcp-ip-protocol/

https://m.blog.naver.com/tlsrbdk/220026762848

https://aktnfl.tistory.com/20

시스템 콜을 설명하시오.
경쟁 상태에 대해 설명하시오.

운영체제는 커널모드와 사용자 모드로 나뉘어 구동됨. 운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나, 혹은 화면에 메시지를 출력하는 등 많으 부분이 커널 모드를 사용한다.

시스템 콜은 이러한 널 영역의 기능을 사용자 모드가 사용 가능하게, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 해준다. 

 

시스템 콜의 유형

2.4.1 프로세스 제어(Process Control)

  • 끝내기(end), 중지(abort)
  • 적재(load), 실행(execute)
  • 프로세스 생성(create process)
  • 프로세스 속성 획득과 설정(get process attribute and set process attribute)
  • 시간 대기(wait time)
  • 사건 대기(wait event)
  • 사건을 알림(signal event)
  • 메모리 할당 및 해제 : malloc, free

 

2.4.2 파일 조작(File Manipulation)

  • 파일 생성(create file), 파일 삭제(delete file)
  • 열기(open), 닫기(close)
  • 읽기(read), 쓰기(write), 위치 변경(reposition)
  • 파일 속성 획득 및 설정(get file attribute and set file attribute)

 

2.4.3 장치 관리(Devide Management)

  • 장치를 요구(request devices), 장치를 방출release device)
  • 읽기, 쓰기, 위치 변경
  • 장치 속성 획득, 장치 속성 설정
  • 장치의 논리적 부착(attach) 또는 분리(detach)

 

2.4.4 정보 유지(Information Maintenance)

  • 시간과 날짜의 설정과 획득(time)
  • 시스템 데이터의 설정과 획득(date)
  • 프로세스 파일, 장치 속성의 획득 및 설정

 

2.4.5 통신(Communication)

  • 통신 연결의 생성, 제거
  • 메시지의 송신, 수신
  • 상태 정보 전달
  • 원격 장치의 부착 및 분리

 

 

경쟁상태란 공유 자원에 대해 여러 프로세스가 동시에 접근을 시도할 때, 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태이다.

커널 코드 실행 중에 인터럽트가 발생할 경우

프로세스가 시스템 콜을 하여 커널모드로 진입해서 작업을 수행하는 도중에 문맥 교환이 발생할 경우

멀티 프로세서에서 공유 메모리 내의 커널 데이터에 접근할 경우

이밖에도 멀티스레드 환경에서 두 개 이상의 스레드가 공통의 전역변수에 접근할 경우 등에서 race condition이 발생할 수 있다

 

경쟁 상태의 예

 

'스터디 관련' 카테고리의 다른 글

CS 스터디 03회차, ~ 6월 30일(목)  (0) 2022.06.30
CS스터디 02회차, ~06월 09일(목)  (0) 2022.06.09
CS스터디 01회차, ~06월 02일(목)  (0) 2022.06.02
2/3(수) 과제  (0) 2021.02.03
1/6일 스터디 과제  (0) 2021.01.06

이번 기술 공유를 통해 만든 키노트입니다.

코어 데이터란 무엇일까요?

코어데이터는 iOS 프레임워크입니다. 프레임 워크는 객체 생명주기와 객체 그래프관리에 관련된 솔루션을 제공합니다. 우리가 데이터베이스처럼 사용할 Persistence 객체 그래프 관리에 포함이 됩니다.

객체그래프 관리 내용 추가(https://velog.io/@ssionii/Core-Data%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%84%EB%9D%BC%EB%B3%B4%EC%9E%90-1-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90)

코어 데이터로 있는 기능들입니다. 하지만, 대부분의 아카데미 러너들이 그랬듯이, 이번 키노트에서는 Persistence 사용한 데이터 저장, 읽기, 수정, 삭제에 대해서만 다룰 예정입니다.

코어 데이터의 대부분 기능들은 애플리케이션의 Entity, Property, relationship 사이의 관계를 설명하기 위해 생성하는 스키마에 따라 결정됩니다. CoreData NSManagedObjectModel 인스턴스인 관리 객체 모델 (Managed Object Model)이라는 스키마를 사용합니다. 이러한 모델이 많을 수록 CoreData 좋게 앱을 지원해 있습니다.

우선 지금까지 해왔던 것처럼 프로젝트를 생성해줍니다.

그리고 옵션 설정에서 Use CoreData 선택해줍니다.

그러면 평소에 보던 화면이랑 약간 다른 느낌의 창이 뜹니다. ContentView Hello World 사라졌습니다.

디바이스를 iPhone으로 바꿔주면,

이렇게 타임 스탬프가 찍혀져 있고 추가 수정이 가능해 보이는 리스트가 나옵니다.

또한 네비게이션 영역에 프로젝트 이름과 똑같은 xcdatam…파일이 보입니다.

들어가서 보니 xcodeproj 파일이랑 비슷한 느낌으로 구성되어있는 것을 확인할 있습니다.

자동으로 생성되어 있는 item 엔티티와 timestamp Attribute 확인할 있습니다.

엔티티와 어트리뷰트 설명 추가

Entity를 추가하려면 하단의 add entity 누르면 되고, Attribute 추가하려면 하단의 add atribute 혹은 attribute 테이블 안에 있는 + 버튼을 클릭하면 됩니다.

Entity나 Attribute를 삭제하려면 선택한 상태에서 백스페이스버튼을 눌러주면 됩니다.

엔티티를 누르고 인스펙터창을 보면 일단 먼저 이름 설정칸과 Codegen이라는 칸이 있습니다.

Codegen 설명 추가

Attribute를 선택후 인스펙터 창을 보면 이름과 타입이 있습니다. 애플 공식문서(아카이브)에서는 디폴트인 Optional 사용하는 것을 권장합니다. 왜냐하면 값이 0일때, 없을때를 구분해주기 때문입니다. 여기서 옵셔널은 스위프트 문법이 아닌 SQL에서의 문법입니다.

하단의 에디터 스타일을 변경하면 UML 다이어그램으로 관계를 있습니다. 하지만, relationship을 사용하지 않는다면 쓸모는 없을 것입니다.

우리가 앞으로 진행해야할 과정입니다.

구조체를 생성후, 인스턴스를 만들고 저장하는 과정을 거칩니다.(1 - 2과정)

코어데이터에 저장이 되었는지 불러오기를 통해 확인합니다.(3 - 5과정)

그러기 위해서는 우선 코어 데이터 스택이란 것에 대해서 알고가야 합니다.

NSManagedObjectModel 인스턴스는 properties relationships 포함하여 app's types 설명합니다.

Entity 설명하는 DB 스키마라고 합니다.

Managed object Structure 정의합니다.

NSManagedObjectContext 인스턴스는 app's types 인스턴스에 대한 변화를 추적합니다. 객체를 통해서 create, delete, fetch, update 작업을 있습니다. (core data 메모리에 로드된 상태로 처리되는데, 때의 메모리가 context 의미합니다.)

여기서 Context가 Transaction 이라는 설명도 있었습니다.

NSPersistentStoreCoordinator 인스턴스는 store 에서 app's types 인스턴스를 저장하고 가져옵니다. (Context Container 사이를 통신합니다.)

Persistent storage managed object model 연결합니다.

NSPersistentContainer 인스턴스를 사용해서 model, context, store coordinator 동시에 설정합니다. (전체적으로 관리하는 최상단의 객체)

Core Data Stack 나타내는 필요한 모든 객체를 포함한다.

그리고 우리가 사용하기 편하게 위의 데이터 스택들을 관리해주는 PersistenceManager를 만들어 줍니다.

NearCat:ch에 대한 설명은 여기

우리가 DB용으로 사용하는 CoreData를 이 파일에서 전체적으로 다루겠다! 그런 의미로 생각하면 됩니다.

우선 PersistenetContainer는 다음 코드처럼 만들어집니다.

밑의 코드 내용 설명 보강

NSPersistentContainer 키워드를 사용하여 만들어집니다.

데이터베이스에서 기본적으로 해줘야할 CRUD는 다음처럼 구현합니다.

키워드 위주로만 설명이 될텐데 생성을 담당하는 키워드는 save가 있습니다.

불러오기, 읽기를 담당하는 키워드는 fetch입니다.

rollback 키워드를 통해 업데이트 할 수 있습니다.

delete 키워드를 통해 삭제가 가능합니다.

이번 키노트를 만들면서 많이 도움이 되었던 사이트들입니다.

 

AR 게임 시장의 매출이 감소한 것으로 보입니다.
AR 게임의 대표격인 포켓몬고

News of layoffs and cancelled game projects at Niantic this week stunned the game development world. For years, the Ingress and Pokémon Go developer has been acquiring companies, launching new games like Harry Potter: Wizards Unite and announcing new titles like Transformers Heavy Metal, Peridot, and NBA All-World.

이번 주 나이앤틱의 해고 및 취소된 게임 프로젝트에 대한 뉴스는 게임 개발 업계에 충격을 주었습니다. 몇 년 동안 인그레스와 포켓몬고 개발자는 회사를 인수하여 해리포터: 마법사 연합과 같은 새로운 게임을 출시하고 트랜스포머: 헤비메탈, 페리도트 및  NBA All-World같은 새로운 타이틀을 발표했습니다 

But layoffs, cost cutting and game cancellation may show that the titanic success of Pokémon Go is slowing down, or at the very least, isn't easily translatable to other game brands. And if it's not working well for Niantic, how might the rest of the AR game world be holding up?

그러나 정리해고, 비용 절감 및 게임 취소는 포켓몬고의 거대한 성공이 둔화되고 있음을 보여주거나 최소한 다른 게임 브랜드로 쉽게 전환할 수 없음을 보여줄 수 있습니다. 나이앤틱에서 잘 안된다면, 나머지 AR 게임 세계는 어떻게 버틸 수 있을까요?

To get some context, we checked in with Omdia Analyst Guillermo Escofet. Escofet is regularly forecasting the augmented reality game market, and had just updated his report right as Niantic announced its cuts.

상황을 파악하기 위해 Omdia사의 애널리스트 Guillermo Escofet와 함께 확인했습니다. Escofet은 AR 게임 시장을 정기적으로 예측하고 있으며 나이앤틱이 삭감을 발표하자마자 보고서를 업데이트했습니다.

"Growth in mobile AR games revenue has stalled. It dipped slightly last year and, this year, and it is heading for a 20 percent drop, bringing it close to 2019 levels," Escofet explained in his updated forecasting. He noted that Pokémon Go's revenue appears to have dropped 45 percent in 2022, and Square Enix's Dragon Quest Walk saw a 32 percent year-over-year drop in revenue in the company's 2022 first-quarter results."

Escofet은 업데이트된 예측에서 "모바일 AR 게임 수익의 성장은 정체되었다. 작년과 올해 약간 감소했으며 2019 수준에 근접하여 20% 하락을 향하고 있다."고 설명했습니다. 그는 2022년 포켓몬고의 매출이 45% 감소한 것으로 보이며, 스퀘어 에닉스의 드래곤 퀘스트 워크는 회사의 2022년 1분기 결과에서 매출이 전년 대비 32% 감소했다고 언급했습니다."

These drops have driven Escofest to update his forecast of the AR game market. He predicts that the market is now on track to earn $2.5 billion in revenue by 2026, down from $6.7 billion in projected revenue.

이러한 하락으로 인해 Escofest는 AR 게임 시장에 대한 예측을 업데이트했습니다. 그는 시장이 현재 예상 매출 67억 달러에서 2026년까지 25억 달러의 매출을 올릴 것으로 예상합니다.

Escofet isn't all doom-and-gloom about the mobile games market though. He pointed out that a similar dip in revenue took place in 2017, and that these erratic shifts are partly driven by a market dominated where a handful of games bring in most of the revenue. 

하지만 Escofet이 모바일 게임 시장에 대해 완전히 우울한 것은 아닙니다. 그는 2017년에도 비슷한 수익 감소가 발생했으며 이러한 불규칙한 변화는 일부 게임이 수익의 대부분을 차지하는 시장이 지배적이기 때문에 발생한다고 지적했습니다. 

It does appear that the AR games market isn't able to sustain more than one "super hit" like Pokémon Go, Escofet said, though that doesn't mean there still won't be growth in the industry's future. "There are enough compelling mobile AR gaming use cases, and there is enough impetus from leading platforms such as Apple, Google, Meta, Tencent, Unity and Unreal, to ensure continued growth going forward," he wrote. "Albeit at a significantly slower pace than previously forecast."

Escofet은 AR 게임 시장이 포켓몬고와 같은 "슈퍼 히트"를 한 번 이상 지속할 수 없는  것으로 보이지만 이것이 업계의 미래에 여전히 성장이 없을 것이라는 의미는 아니라고 말했습니다. "충분히 매력적인 모바일 AR 게임 사용 사례가 있으며 Apple, Google, Meta, Tencent, Unity 및 Unreal과 같은 주요 플랫폼의 충분한 추진력이 있어 지속적인 성장을 보장한다. 비록 이전 예측보다 상당히 느린 속도로 진행되지만" 이라고 밝혔습니다.

If you're the kind of developer looking to solve revenue challenges for augmented reality games, Escofet pointed out the two major weaknesses of the business that are in need of solving: first, AR games are not popular in China, a country that makes up a third of the global mobile game market's revenue. Pokémon Go and other Western real-world games are banned in the region, and Tencent's Let's Hunt Monsters does not generate much revenue.

Escofet은 AR 게임의 수익 문제를 해결하려는 개발자라면 해결해야 할 비즈니스의 두 가지 주요 약점을 지적했습니다. 첫째, AR 게임은 중국에서 인기가 없습니다. 전 세계 모바일 게임 시장 매출의 3분의 1을 차지합니다. 중국에서는 포켓몬고 및 기타 서양의 실제 게임이 금지되어 있으며 텐센트의 렛츠헌트몬스터는 중국에서 수익을 많이 창출하지 못합니다.

Second, AR games are far less likely to have in-game advertising compared to regular mobile games. Figuring out how to integrate ads into these types of games may be a potent revenue stream that shifts the market's overall performance.

둘째, AR 게임은 일반 모바일 게임에 비해 인게임 광고 가능성이 훨씬 낮습니다. 이러한 유형의 게임에 광고를 통합하는 방법을 알아내는 것은 시장의 전체 실적을 변화시키는 강력한 수익원일 수 있습니다.

It is disappointing that the Pokémon Go model has propelled the game into a "sole super hit" status, rather than being a springboard for more games in the same genre. But it also highlights how the Pokémon brand helped elevate the game design in question. Not only is it about the pre-existing popularity and market interest in Pokémon, it's also a healthy overlap with the fantasy the game is selling.

포켓몬고 모델이 같은 장르의 더 많은 게임을 위한 발판이 아니라 "단독 슈퍼 히트" 상태로 게임을 추진한 것은 실망스럽습니다. 그러나 또한 포켓몬 브랜드가 문제의 게임 디자인을 향상시키는 데 어떻게 도움이 되었는지 강조합니다. 이는 포켓몬에 대한 기존의 인기와 시장 관심에 관한 것일 뿐만 아니라 게임이 판매하는 판타지와도 건전하게 겹치는 부분이기도 합니다.

The fantasy of being a Pokémon trainer in the real-world has been a part of the franchise's marketing since 1996. Randomized creature encounters, trainer battles, and dominance over gyms have been core mechanics since the very first game. It's a difficult pitch to compete against—hopefully Niantic (which just launched its AR game social media network Campfire) and other developers are able to find new angles on AR technology to help the market find new audiences.

현실 세계에서 포켓몬 트레이너가 되는 환상은 1996년부터 프랜차이즈 마케팅의 일부였습니다. 무작위 생물과의 조우, 트레이너 전투 및 체육관에서의 지배는 첫 게임부터 핵심 역학이었습니다. 나이앤틱(AR 게임 소셜 미디어 네트워크 캠프파이어를 막 출시함)과 다른 개발자들이 AR 기술에 대한 새로운 관점을 찾아 시장에서 새로운 청중을 찾는 데 도움이 되기를 바랍니다.

 
 

원문 링크: "Augmented reality game market growth might be stalling" written by Bryant Francis

 

Augmented reality game market growth might be stalling

Data from our sibling organization Omdia seems to indicate a slowdown in growth for the mobile AR game market.

www.gamedeveloper.com

 

스페인의 전리품상자 (이하 랜덤박스)는 곧 무의미해질 것입니다.

Alberto Garzon 소비자부장관은 정부가 며칠 안으로 NFT나 가상화폐를 포함하여 실제 또는 가상 시장에서 경제적 가치가 있는 상품을 제공하고 재판매 또는 교환할 수 있는 게이밍 특성을 규제할 것이라고 발표했다.  ("Spain to crack down on videogame 'loot boxes' blamed for pathological behaviour", June 1, 2022 By Emma Pinedo)

 

The Spanish government has announced its intent to regulate the use of loot boxes in video games, with the intent to curtail "thoughtless, compulsive or even pathological" consumer behavior among players.

스페인 정부는 비디오 게임에서 랜덤박스 사용을 규제할 계획을 발표했으며, 이 규제는 플레이어들 사이에서 "무지성이고 강박적이며 심지어 병적인" 소비자 행동을 줄이기 위한 의도를 가지고 있다.

The legislation being proposed by Consumer Minister Alberto Garzon will apparently be part of regulation targeting digital items that have financial value in a real or virtual market. This would also cover the sale and distribution of blockchain-backed goods like NFTs.

Alberto Garzon 소비자부 장관이 제안한 법안은 실제 또는 가상 시장에서 재정적 가치가 있는 디지털 아이템을 대상으로 하는 규정의 일부가 될 것이다. 여기에는 NFT와 같은 블록체인 기반 상품의 판매 및 유통도 포함된다.

According to Reuters, Garzon said that the regulation will still allow players to "have fun" while protecting vulnerable users. This refers to the possible link between players who spend large amounts of money on randomized loot boxes and conventional gambling addiction.

Reuters에 따르면 Garzon은 이 규정이 여전히 취약한 사용자를 보호하면서 플레이어가 "재미있게" 즐길 수 있도록 할 것이라고 말했다. 이 발언은 랜덤박스에 많은 돈을 쓰는 플레이어와 기존의 도박 중독 사이의 공통점을 시사한다.

Three in 10 Spanish students apparently spent money on in-game purchases in 2021.

2021년에는 스페인 학생 10명 중 3명이 게임 내 구매에 돈을 사용했다.

Spain joins the ranks of other European governments like Belgium and the Netherlands in regulating the use of loot boxes in games that can be played within its borders. Belgium and the Netherlands have strictly banned the practice; it's unclear if Spain will do the same.

스페인은 국경 내에서 플레이할 수 있는 게임에서 랜덤박스 사용을 벨기에 및 네덜란드와 같은 다른 유럽 정부와 같이 규제한다. 벨기에와 네덜란드는 이 관행을 엄격히 금지했다. 스페인도 똑같이 할지는 알 수없다.

Earlier this year, Blizzard Entertainment was forced to cancel the release of Diablo Immortal in Belgium and the Netherlands for fears that it would run afoul of those country's regulations.

올해 초 블리자드 엔터테인먼트는 벨기에와 네덜란드에서의 디아블로 이모탈 출시가 해당 국가의 규정에 위배될 것을 우려해 취소해야 했다.

Legal efforts to restrict the use of loot boxes have also emerged in the United Kingdom and Canada, though neither company has formally taken up any bans on the game mechanic. U.S. lawmakers have also expressed interest in investigating the practice.

영국과 캐나다 에서도 랜덤박스의 사용을 제한하려는 법적 노력이 나타났지만, 두 회사 모두 게임 메커니즘에 대한 금지 조치를 공식적으로 취하지 않았다. 미국 의원들도 이러한 관행을 조사하는데 관심을 표명했다.

 

원문 링크: "Spain set to restrict the use of loot boxes in video games" written by Bryant Francis 

 

Spain set to restrict the use of loot boxes in video games

The Spanish government has announced its intent to regulate the use of loot boxes within the country's borders.

www.gamedeveloper.com

 

쓰레드와 프로세스의 차이는 무엇인가?
인터럽트(interrupt)에 대해 설명하시오.

프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이다.

쓰레드는 할당받은 자원을 이용하는 실행의 단위이고 프로세스 내에 여러개가 생길 수 있다.

- 프로그램을 실행하는 순간 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적 상태라고 이야기 하며 이 상태의 프로그램을 프로세스라고 한다. 따라서 실행중인 프로그램을 프로세스라고 생각하면 된다.

그런데, 프로그램들이 점차 복잡해지기 시작하면서 하나의 프로세스만으로는 벅차게 되었다. 이때 가장 먼저 생각나는 해결책은 프로세스를 여러개 만드는 것이겠지만, 운영체제는 안정성을 위하여 자신에게 할당된 메모리 내역 정보에만 접근 할 수 있도록 제약을 두고 있고 이를 벗어나는 정보에 접근하면 오류가 나기에 불가능했다. 

이러한 문제를 해결하기 위해서 쓰레드가 나왔다. 쓰레드는 프로세스와 다르게 쓰레드 간 메모리를 공유하며 작동한다. 쓰레드는 프로세스의 코드에 정의된 절차에 따라 실행되는 특정한 수행 경로다.

프로세스와 쓰레드의 작동 방식 차이

프로세스들이 운영체제로부터 별도의 메모리 영역을 할당받은 모습 (이미지 출처:  Heee's Development Blog )

 

스레드들이 프로세스의 Code/Data/Heap 메모리 영역을 공유하는 모습 (이미지 출처:  Heee's Development Blog )

 

여기서도 차이가 나는데, 프로세스를 실행중에 크래쉬가 나면, 다른 프로세스에 영향을 주지 않는다.

하지만, 한 쓰레드에 오류가 난다면, 같은 프로세스 내의 모든 쓰레드가 강제로 종료된다.

CPU가 작업을 할때는 쓰레드를 최소 단위로, 운영체제가 작업을 할때는 프로세스가 최소 단위로 삼아져서 작업이 된다.

하나의 프로세스는 하나 이상의 쓰레드를 갖게된다.

 

 

 

 

주변 장치와 입출력 장치는 CPU나 메모리와 달리 interrup라는 메커니즘을 통해 관리된다. 입출력 연산이 CPU 명령 수행속도보다 현저히 느리기 때문이다.

인터럽트의 정의는 CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것이다.

즉, CPU의 처리 속도가 입출력장치속도보다 빨라서 다른 업무를 먼저 수행하고 있다가, 입출력장치가 일을 끝내고 CPU에게 이를 알리면 CPU는 다시 관련된 업무를 진행하는 과정으로 진행이 된다. 이 과정에서 CPU에게 알리는 과정이 인터럽트이다.

 

참고 블로그: https://velog.io/@raejoonee/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

프로세스와 스레드의 차이

프로세스와 스레드의 차이는 프로세스와 스레드, 그리고 프로그램이 작동하는 방식에 대해서 잘 이해하고 있는지 확인하기 위해 기술면접에서 단골 질문 사항으로 나온다.

velog.io

https://velog.io/@adam2/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8

 

[OS기초] 인터럽트 제대로 이해하기

주변장치와 입출력 장치는 CPU나 메모리와 달리 인터럽트라는 메커니즘을 통해 관리된다. 그래서 인터럽트, 왜 하는거요? 그 이유는 입출력 연산이 CPU 명령 수행속도보다 현저히 느리기 때문이

velog.io

 

'스터디 관련' 카테고리의 다른 글

CS 스터디 04회차, ~ 7월 7일(목)  (0) 2022.07.07
CS스터디 02회차, ~06월 09일(목)  (0) 2022.06.09
CS스터디 01회차, ~06월 02일(목)  (0) 2022.06.02
2/3(수) 과제  (0) 2021.02.03
1/6일 스터디 과제  (0) 2021.01.06

+ Recent posts