(무려 3년 만의 포스팅.. 요즘엔 그냥 개인 노션에 정리만 하는 편...)

어쩌다보니 식당 한군데의 자잘한 일들을 봐주고 있다.
주로 네트워크, CCTV나 매장에서 메뉴판으로 쓰는 아이패드 관리 따위인데,,
어제는 매니저님에게 전화가 오더니 네트워크 어쩌구 하시더라.

이야기를 들어보니, 포스에서 주문을 넣으면 주방 등에 영수증으로 주문 내역이 출력되는데, 그 출력이 안되더란 이야기.
그래서 포스사 직원을 불렀는데 직원은 네트워크 문제일거라고 하셔서 나에게 도움 요청하신거였다.

내가 한건 아니지만,, 매장 구조상 한 곳으로 보인 랜선을 랜 커플러로 다시 다른 곳으로 보내서 연결이 주렁주렁된 터라 찔리는게 있어서 그러려니 하였고,, 그래도 현상이 이상해서 매장을 방문해봤다.

서론이 꽤나 길 것 같은데...

[토스 결제 시스템에 대한 배경 지식]

토스 플레이스는 위 사진과 같은 조합의 SW/장비들을 제공한다.
왼쪽은 포스 프로그램. 포스 프로그램이란게 늘 그렇듯 필수는 아니다. 있으면 매장 주문 관리 등이 조금 편해지는거고...
윈도우, 맥, 아이패드, 갤럭시 모든 플랫폼을 지원하는게 특이한 포인트 + 보통 사용 수수료를 받는데 토스 포스는 무료로 사용할 수 있다.
토스 포스 프로그램에 대해서도 써볼려면 글이 따로 하나 나올 것 같아서 하략...

그 다음은 토스 프론트. 주로 결제 단말기로 많이 사용하며 간단하게 메뉴를 표시하거나 사용자 입장에서 키오스크 주문기처럼 사용할 수도 있다. 안드로이드 기기임. 영수증 프린터 기능은 없기 때문에 유무선으로 다른 장비를 연결해줘야 한다. 보통 정말 결제만 되는 카드 단말기를 하나 백업으로 구비하고, 그 단말기가 영수증 프린터를 겸하기 때문에 거기다 연결하는 경우가 많은 것 같다.

그 다음은 터미널인데, 이번에 문제 생기면서 직원이 임시로 갖다줘서 처음 봤다. 프론트를 고객 쪽에 향하게 하고, 터미널은 안쪽 직원이 금액 입력, 영수증 출력 등의 용도로 사용하는 느낌인 듯. 생긴걸 보니 결제 단말기로써의 역할도 할 것 같다.

[토스 포스와 영수증 프린터]

토스 포스는 한 매장에서 동시에 여러개 실행할 수 있는데, 매장 현황(테이블 정보, 주문 내역) 등은 공유하지만 연결되는 결제 단말기나 프린터 정보는 공유되지 않는다.
다만, 한쪽에서 주문했을 프린터가 연결된 다른 기기가 켜져있다면, 그 기기가 주문 정보를 받아서 대신 인쇄를 해준다. 그래서 여러 기기에 걸쳐 프린터를 연결해두면 안됨. (이걸 모른 채로 자꾸 지운 프린터로 인쇄가 되어서 한참을 헤맸음ㅠ)

실행 중인 토스 포스에서 영수증 프린터로 인쇄 요청을 보내는 방식이기 때문에, 포스가 실행되는 장비 기준으로 시리얼/USB 연결된 프린터나, 블루투스, 와이파이 프린터로 인쇄시킬 수 있고, 토스 프론트와 연결하고 나면 토스 프론트에 유선 연결된 프린터로 인쇄시키는 것도 가능하다.
또한 A 프린터는 영수증만, B 프린터는 주방에 주문 내역을, C 프린터는 다른 곳에서 특정 주문만을 출력하는 등 프린터별로 인쇄 종류를 나눌 수 있다.

토스 터미널이 아니라면 인쇄는 ESC/POS 프로토콜로 인쇄 요청을 보내게 된다.

이 매장에서는 토스 프론트에 유선 연결된 결제 단말기 하나, ESC/POS 유선 이더넷 영수증 프린터 3대, 그리고 ESC/POS WiFi 프린터 1대를 사용 중이다.

세우테크 SLK-TS400W, 와이파이 영수증 프린터

[문제 상황]

다시 매장으로 돌아와서, 영수증 프린터 한대의 파손과 다른 프린터가 모두 작동을 하지 않아서 토스 플레이스 대리점 직원을 부른 상황.
직원 입장에선 토스 프론트와 직접 연결된 결제 단말기는 인쇄가 되고, 네트워크로 연결된 영수증 프린터가 작동하지 않으니 네트워크 탓을 할 수 밖에 없었을터다.

나도 현상이 너무 이상해서 이런저런 테스트를 해봤는데, 아무리 봐도 네트워크 문제는 아니였다.
그러다 내가 ESC/POS 프로토콜로 프린터에 직접 명령을 전송할 경우 인쇄가 잘 되는걸 발견하였다!!!

임시로 가져오신 토스 터미널 2대는 인쇄가 잘 되었다. 토스 터미널은 ESC/POS 프로토콜이 아니라 별도 방식을 사용하는 듯.

대리점에서 오신 분도 계속 네트워크만 의심하시다가, 내가 테스트한걸 보시더니 토스 포스 앱의 문제임을 99% 확신하시고 영상을 찍어가셨다. 토스 포스 앱이 갑자기 문제 생겼으리라곤 누가 의심했을까...
다른 매장에선 별도로 안된다는 리폿이 없어서 더 네트워크만 의심했던건데, 왜 다른 매장 리폿이 없었는지는 의문이다. 그냥 그러려니 하고 쓰거나... 토스 포스를 그만큼 안쓰거나....??

(수정) 다음날 대리점 직원으로부터 전달받았는데 다른 매장은 잘 된다고 한다... 저 매장도 전체 기기에서 프린터를 삭제하고 다시 등록하니 또 인쇄가 되기도 하는걸 발견....

대리점 직원분도 예전과 다르게 최근에는 매장에 설치해주러 갔을 때 프린터 연결이 잘 안되어서 힘들었는데, 포스 프로그램 탓이었던 것인가?! 하면서 한탄하시더라..ㅠㅠ 그건 아마 다른 문제일 것 같긴 하지만 그냥 그러려니 했다.

여튼 당장 할 수 있는게 없으니 둘 다 퇴근.

 

[해결 과정]

집에 가는 길에 문득 토스 포스에서 인쇄 요청을 어떻게 잘 못 보내는지 궁금해졌다.
위에서 얘기했듯, 포스 프로그램을 별도로 실행시키면 매장 영업에 큰 영향 없이 이런저런 테스트를 할 수 있다.
로컬에 소켓 서버를 열고, 뭐라고 오는지 받아봤다.

테스트 출력을 누르면 '테스트 프린트' 라고만 출력이 되는데, 그 요청을 받아봤다.
ESC/POS 프로토콜은 검색해봤음. ESC 는 0x1B 를, GS 는 0x1D 를 의미한다.
요청 받은 패킷을 해석하면 아래와 같다.

1B 52 0D
	ESC R n: Select international characters
    	n 13: Korea
1D 21 11
	GS ! n: Select character size
    	0 <= n <= 255
C5 D7 BD BA C6 AE 20 C7 C1 B8 B0 C6 AE 0A
	'테스트 프린트\n'
1B 21 00
	ESC ! n: Batch specify print mode
1D 21 00
	GS ! n: Select character size
1B 61 00
	ESC a n: Position alignment
    	00 or 48: left
        01 or 49: center
        02 or 50: right
1D 42 00
	GS B n: Specify/cancel white/black inverted printing

0A 0A 0A 0A 0A 0A
	'\n\n\n\n\n\n'
1D 56 31
	GS V: Cut paper
    
(아래 4개 중복)
1B 21 00
1D 21 00
1B 61 00
1D 42 00
(----------)
1B 40
	ESC @: Initialize printer

 

소켓을 제대로 못 열거나, 실수로 프린터 주소를 하드 코딩 해뒀거나.. 따위를 의심했는데 그런건 아니였다.
그저 소켓 연결 수립 직후 보내야하는 Initialize printer 패킷 (0x1B 0x40)을, 가장 먼저 보내지 않고 가장 늦게 보내고 있었다...ㅡㅡ;;

그래서 매장에 따로 오드로이드(라즈베리파이 같은거) 한대 꽂아두고, 파이썬 서버를 띄워서 1B 40 으로 시작하지 않는 인쇄 요청은 내가 붙여서 다시 프린터로 보내도록 간단하게 프로그램을 짜두고, 토스 포스 프린터 설정을 다 바꾸었다.

그러니 정상 작동!

코드는 오래 쓸게 아니니 대충 작성해서 돌렸다.

import socket
import binascii
import traceback
import os

PORT = int(os.environ.get('PORT', '9100'))
TARGET = '192.168.20.' + os.environ.get('TARGET', '250')

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('0.0.0.0', PORT))
sock.listen(10)

while True:
	conn, client_addr = sock.accept()
	print('connection from', client_addr)
	
	proxy = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	is_first = True

	try:
		proxy.connect((TARGET, 9100))
		while True:
			data = conn.recv(1024)
			
			if data:
				if is_first:
					is_first = False			
					if data[:2] != b'\x1b\x40':
						proxy.send(b'\x1b\x40')
				
				# print('received', binascii.hexlify(data, ' ').upper())
				proxy.send(data)
			else:
				# print('no more data from', client_addr)
				break
	except:
		traceback.print_exc()
	finally:
		try:
			conn.close()
			proxy.close()
		except: pass

 

[추가 문제]

인쇄가 잘 되어서 싱글벙글하고 있었는데,, 어느순간 또 먹통이 되는 문제가 발생..
토스 터미널은 여전히 잘 되고... 토스 포스 프로그램을 완전히 종료하고 나면 또 잘 된다.
영상을 올리고 싶은데... 매장명이 노출되는데 영상 편집은 귀찮으니 생략....

매장 직원들에게 물어보니 예전부터 자주 그랬다고.... 직원들은 맺힌게 많았는지 포스 안 만들던 회사가 만드니 너무 불안정하다고 아예 시스템을 갈아버렸으면 좋겠다고 얘기하시더라.... (하지만... 토스 프론트가 예쁜걸.... 매장 주문 내역을 가져갈 수 있는 API 같은 것도 전혀 없어서... 바꿔야 한다는 의견도 프론트 예쁘다 원툴로 버텼는걸....)

그동안 안되는게 네트워크 문제일 줄 알았는데 전부 토스 문제였다니... 허허....

안될 때는 프린터로 소켓 연결 수립 조차 안한다. 이건 내가 어떻게 할 수 없으니 GG...
그냥 안되면 포스 앱을 한번 종료했다가 다시 실행해달라고만 전해뒀다.


방문하셨던 담당자분에겐 이 문제를 전달해드렸는데... 이게 과연 토스 포스 개발팀에게 전달이 될지.. 되면 언제 수정이 될지...
토스 포스 앱 자체는 업데이트가 되게 잦던데, 금방 해결되길 바라본다.

문제를 파악하고 해결하는 과정이 나름 재밌기도 했고,
누군가는 또 오작동이 자기 매장의 문제일거라 생각하고 고통받고 있을 것 같아서,, 혹시나 하는 마음에 짧게 남겨 보았음.


(추가 수정) 프린터로 요청 자체를 보내지 않는 문제 때문에 사용을 거의 못하셨다고 한다.
그래서 오늘은 토스 터미널 요청을 역분석해서, 터미널로 등록 → ESC/POS 프린터로 전송하도록 수정하였다.

토스 터미널은 :14555 포트에 http 서버가 띄워져 있으며, 토스 포스 앱은 3개의 엔드포인트를 요청한다.
- GET /: 404 반환됨
- GET /sn: { "serialNumber": "..." } 반환. 아무 값이나 뱉어도 무관함
- POST /print: 인쇄 요청, { "data": "base64 encoded..", "count": 1 }

헤더로도 몇가지 오지만 일단 무시.

base64 인코딩 된 문자열은 ESC/POS 명령어셋과 거의 동일하지만, 지원 인코딩 셋이 좀 다르다.
코드 상으론 좀 더 다양하게 지원하는 것 같긴 한데, 일단 ESC R n 에서 n = 0x0D Korean 표준을 따르지 않고, 0x0F 를 사용, 이는 GB18030 셋으로 인코딩 된다. 중국어 코드 집합인데,, 한국어도 잘 됨.

조금 귀찮지만 GB18030 을 디코딩한 후, cp949 에 없는 캐릭터셋은 대충 ? 로 치환해준 뒤, cp949 로 보내면 된다.

이를 위해 ESC/POS 명령어셋 파싱이 필요한데, 일단 내가 확인한 바로는 아래 명령어셋만 사용함.
- ESC @, ESC R, ESC !, ESC a, ESC E
- GS !, GS B, GS V

추가로 따로 포트번호가 없기 때문에 여러 대의 프린터랑 연결하기가 어렵다.
서버에 IP 를 여러개 할당한 후, 요청의 Host 헤더를 보고 적절한 프린터로 연결되도록 수정함.
도메인 주소는 토스 포스 앱에서 올바른 주소로 인정해주지 않는다...ㅎㅎ;;

조금 더 코드가 길어졌지만... 일단 이렇게라도 잘 되길 바라며....

어느순간부터 티스토리 계정이 로그인되어 있음에도 불구하고 필명과 비밀번호를 직접 입력하는 방식으로만 댓글을 남길 수 있는걸 발견했다.

티스토리 버그인줄 알고 그러려니 했는데 하루이틀 만에 안 고쳐져서 찾아보니 버그는 아니고.. 2차 도메인 문제라고...

참고: [안내] 2차 도메인 사용 시 유의사항


블로그 관리 - 좌측 하단 설정 - 블로그 에서 기본 도메인인 ***.tistory.com 주소로 접속을 하면 일단 원래대로 정상 이용이 가능하다.


브라우저 보안정책이 강화되면서 다른 도메인간 쿠키 공유 같은게 막힌 것 같고, 그로 인해 로그인 세션 유지가 안되는 듯...

공지에서 개선방안을 찾고 있다고 하니 곧 해결해주겠징...

SSO 같은 느낌으로 다른 도메인간 세션 공유를 해주는 방식으로 만들어주면 될 것 같긴 한데,, 완전 새로운 기능 추가이다 보니 오래 걸리나부다..ㅠㅠㅠ

나도 잠깐 고생한 적이 있었는데, 원인도 모르고 고생하다 나에게 물어오는 사람이 종종 생겨서,

혹시나 이 글이 검색에 걸려 도움을 받는 사람이 있을까 싶어 남겨본다.


통신사에서 제공하는 무료와이파이나 군부대 사지방 인터넷 등에서 웹서핑을 하면, 대부분의 사이트는 접속이 잘 되지만 특정 서비스들이 안되는 경우가 종종 발생한다.


특정 사이트 자체가 접속이 안되거나,

사이트 접속이 되긴 하는데 특정 기능이 작동을 안하거나,

특정 프로그램이 제대로된 작동을 못하거나.



이 문제들은 모두 공용 와이파이의 보안정책 때문인데, 정확히 확인해보진 않았지만 대충 80/443 포트를 제외하고 IN/OUT 을 다 막는다고 생각하면 된다. (dynamic port 대역은 남겨두려나?)


그래서 간단하게로는 :8080 이라던가, :8888 이라던가, :8443 등등 다른 포트 위에 돌아가는 페이지에 접속을 할 수 없거나,

5900 포트를 사용하는 vnc 등에 접속을 할 수 없다.


우리학교 포탈 시스템이 해당되고, 예전엔 KT 도 그랬던 것 같은데 지금은 아닌 듯.



해결법은 서비스 제공자에게 80/443 포트를 사용하여 서비스 하도록 요청하거나,

공용 와이파이의 정책을 완화해주도록 요청해야할텐데, 둘 다 아무래도 현실성이 떨어지겠지?


그냥 이런 구린 와이파이를 안쓰는게 제일 좋겠지만,

어쩔 수 없다면 80,443 포트를 사용하는 프록시나 openVPN 을 사용하는게 그나마 가능한 해결책일 것 같다.



이런 문제 때문에서인지, 카톡 같은 애들은 소켓을 열 때 80, 443 포트도 후보군에 있다.

서비스를 개발, 제공한다면 고려해보면 좋은 지점.

티스토리에 Prism 을 적용하였음.

기록용 및 글 작성 참고용.


선택한 옵션 주소는

https://prismjs.com/download.html#themes=prism-coy&languages=markup+css+clike+javascript+c+autohotkey+bash+cpp+arduino+django+docker+markup-templating+git+go+http+java+json+kotlin+markdown+makefile+nginx+objectivec+php+sql+python+plsql+swift+vim&plugins=line-highlight+line-numbers+toolbar+remove-initial-line-feed+command-line+copy-to-clipboard


플러그인

Line Hightlight

Line Numbers

Command Line

Copy to Clipboard Button



<pre class="line-numbers" data-start="3" data-line="4-5,8"><code class="language-python">

print('Hello world!')


</code></pre>

<pre class="command-line" data-user="root" data-host="local" data-prompt="PS >"><code class="language-bash">
</code></pre>

<code class="language-bash">~~~</code>

pwd
/usr/home/chris/bin
ls -la
total 2
drwxr-xr-x   2 chris  chris     11 Jan 10 16:48 .
(out)drwxr--r-x  45 chris  chris     92 Feb 14 11:10 ..



<pre><code class="language-bash">

<pre class="command-line" data-prompt="$" data-filter-output="(out)"><code class="language-bash">
<pre class="command-line" data-prompt="$" data-output="1-2"><code class="language-bash">

</code></pre>

(1) 레지스트리 수정으로 CapsLock -> 한/영전환 매핑


글에 이어서 작성하므로 서론은 생략.


====================


우선 CapsLock 을 눌렀을 때 대신 한영전환으로 바꾸는건 부트캠프에서 Cmd+Space 로 한영전환 하기 에서도 했으니 패스.


SuperUser - Using CapsLock LED for other purposes

이 글을 참고해서 LED 변경법을 알았는데, kbd 값이 PC 마다 다른 것 같아서 그냥 0~5 까지 다 루프를 돌도록 만들었다.


현재 언어 설정을 받아오는 법이 문제였는데, 영어, 한국어 키보드 레이아웃 자체를 변경하는게 아니라

한국어 키보드 레이아웃에서 IME 자체적으로 영어/한국어 변경을 하는식이라 GetKeyboardLayoutName 으로는 무조건 한국어로만 나오는 문제가 있더라. (AutoHotKey - Detecting the currently-active language)


그래서 조금 뒤져보니 뭔가 알수 없는 방법으로 한국어 Layout 하에서 현재 상태가 한국어인지 영어인지 알아내는 법을 찾았다.

영어일때는 ErrorCode 가 0, 한국어일때 Error 가 나서 ErrorCode 가 1이 되는 뭔가 이상한 방법을 쓰는데 원리는 모르겠음.

AutoHotKey - 한글입력인지 영어입력인지 구분

AutoHotKey - 절대한영전환


요걸 잘 섞어서


CapsLockIME.ahk


이런 스크립트를 만들 수 있다.


led.ahk 는 위 링크에서 받아도 되지만 링크가 깨질 수도 있으니 -> led.ahk


====================


그리고 대부분이 다운받아 쓸 컴파일된 바이너리

CapsLockIME.exe


부트캠프에서 Cmd+Space 로 한영전환 하기

글에서의, CommandKeys 와 함께 쓰고싶다면

CmdKeys CapsLockIME.exe



영어일때 CapsLock LED가 꺼지고 한글일때 CapsLock LED가 켜진다.

윈7, 윈10 에서 테스트 해봤음.


원래 CommandKeys 프로그램과 같이 그냥 시작메뉴에 넣어두고 쓰면 된다.



참고 URL은 위에 링크 다 걸었음.



== Git ==

https://github.com/iolate/CapsLockIME

부트캠프에서 Cmd+Space 로 한영전환 하기


글을 쓴 적이 있는데.. 

이번엔 CapsLock 으로 한영전환하기를 해봤다. 사실 난 안쓰지만... 형의 요구로...


CapsLock 키를 주로 쓰는 사람이 많이 없으니 요즘 Control 키 등으로 매핑해서 사용하는 사람이 많아지는 것 같다.

나의 경우도 맥에서 Expose(바뀐 이름을 모르겠다)로 매핑해서 사용중이기도 하고.


기본적으론 한영전환으로 바꾸지만 조금만 바꾸면 다른키로 매핑도 가능.


겪은 과정을 다 적을거라서

(1) 레지스트리 수정으로 CapsLock -> 한/영전환 매핑

(2) AutoHotKey 를 이용하여 CapsLock -> 한/영전환 매핑 및 LED 제어

두개의 글을 작성한다.


====================


레지스트리 수정으로 키매핑을 하는 방법은

키보드의 설정 바꾸기 #1 Registry Scancode Map 수정 Shift+Space 한영전환 Capslock2Ctrl

글을 조금 수정하면 된다.


요약하자면


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

경로에 "Scancode Map" 이름으로 2진값 항목을 만들어서

00000000 00000000 02000000 72003a00 00000000

내용을 적어주면 되지만 그냥


CapsLock2IME.reg


얘를 다운받아서 실행시켜줘도 된다.


이미 비슷한 프로그램이나 방법으로 설정한 적이 있다면 덮어써지니 주의.



== 참고 ==


Microsoft MSDN - Keyboard and mouse class drivers


CapsLock: 0x003A

한/영: 0x0072


== Git ==

https://github.com/iolate/CapsLockIME

이걸 정확히 뭐라고 하는진.. 모르겠는데,


여튼 dns 설정이 뭔가 이상했고, 난 바꿀 필요성이 있었다..!! ㅋㅋ


기기를 공유기에 연결하면, 보통 DNS 에 공유기의 게이트웨이가 적히고,

공유기에서 공유기에 설정된 DNS 를 이용하는데,

이걸 임의의 다른 DNS(예를 들면 8.8.8.8) 로 바꿀 수 있다.


간단히 보자면,



이걸



이렇게 바꿀 수 있다!!

물론 사용자가 직접 바꿀 수도 있긴 하지만, 난 기본값으로 저렇게 뿌려주고 싶었음.


참고로 10.0.2.220, 204 는 우리학교 내부 DNS.



dd-wrt 설정페이지를 먼저 들어간 후,


Setup - Basic Setup 에서


Services - Services 에서


이런식으로 설정해주면 된다.

친구가 아닌 사람의 게시물이,

친구의 좋아요나 공유하기 등으로 내 타임라인에 뜰 때가 있는데,


어떤 사람은 친구가 아니여도 좋아요 / 댓글이 가능한 반면에,

또 어떤 사람들은 그렇지가 않다.


나의 경우는 어떻게 되어있는지 궁금했지만, 별로 필요가 없었기에 신경을 쓰고 있지 않았다.

성년이 되면서 페이스북이 미성년자에게 기본적으로 제공하는 메세지, 검색 제한 등이 풀렸다는 알림을 받은 적이 있기 때문에 이거랑 같이 풀렸나.. 라고 생각하기도 했고.


그런데 최근에 광역 어그로를 끌일이 있어서 글을 썼었고, 

친구가 아니면 댓글을 못 쓴다는 것을 발견한 후, 댓글을 허용할 필요가 있어서 잠깐 설정을 뒤졌다가,

한번의 실패하고 "안되나..?" 라고 생각했지만 누군가는 되는걸 다시 확인하고 시도해서 성공했다.



우선 페북 우측 상단의 삼각형을 눌러서 설정으로 들어간다.





그 다음은 아래 숫자에 따라..

팔로워 메뉴에서 나를 팔로우 할 수 있는 사람을 모든 사람으로 바꾸면,

아래 댓글을 달 수 있는 사람 메뉴가 생기게 된다.





이렇게 하면, 친구가 아닌 사람도 댓글을 달 수 있게 된다.





굳이 확인해보진 않았지만 누군가 댓글을 달아준 덕에 확실히 확인~ ^^

'기타' 카테고리의 다른 글

[Win] CapsLock 키로 한영전환하기 - (1) 레지스트리 수정으로 매핑  (15) 2016.10.09
dd-wrt dns 설정  (1) 2015.01.15
청소년 나이 제한 정리  (0) 2014.01.28
티스토리 RSS 설정  (6) 2013.12.05
오픈소스 라이센스  (0) 2012.01.22

워낙 엉망에,, 복잡하기도 하고... 지금의 나랑 밀접한 연관(?)이 있는 부분이라 정리해봤다..ㅋㅋ

참고로 작성 날짜는 2014년 1월 28일.

법이란게 워낙 자주 바뀌어서 말이지..ㅋㅋ


----------

선거법 개정으로 선거 연령이 내려갔지만, 직접적인 수정은 하지 않음. - 2019.12.30

----------


열심히 썼지만, 안읽는거 다 안다! ㅋㅋ

=======================================

간략 정리!!

일반적으로 수능친 학생

- 1월 1일이 지나면 술, 담배, 찜질방 가능

- 고등학교 졸업 후 노래방, PC방 등 청소년 유해업소 10시 이후 출입 가능

- 생일 이후 완전한 성인(계약, 선거 등 가능)

빠른년생

- 1월 1일이 지나도 할 수 있는거 없음ㅋ

- 생일 지나고 고등학교 졸업 후 노래방, PC방 등 청소년 유해업소 10시 이후 출입 가능

- 다음해 1월 1일이 지나야 술, 담배, 찜질방 가능

=======================================


밑에는 읽고 싶은 사람만 읽거라~~

형법이나 근로 조건 등에 관한 사항도 많지만, 딱히 필요 없을테니 생략한다..ㅋㅋ


아, 잘못된 내용 태클 받습니다!!! ㅋㅋ


만나이, 세는나이

우리나라가 전세계에서 거의 유일하게 세는나이(태어나자마자 1살)를 사용한다고 해도,

언론과 법조문 등 모든 공식적인 문서에서는 만나이를 사용한다.

마찬가지로 법과 관련해서 '만' 이 생략되어 있어도, 만나이라고 생각하면 됨.


이 만나이란건 한 해가 기준이 아니라 내가 태어난 날이 기준이다.

3월~12월 생으로 빠른/조졸없이 학교에 입학하고 수능을 치고, 해가 지나 1월을 맞았다면 보통 한국식 세는 나이로 20살.

하지만 만나이로 따지면 18년 +n개월을 살아온 것이기 때문에 만 18세가 된다.


나이 제한 3단계

이 나이 즈음해서 각종 법적 나이제한에 걸리는 것은 3단계가 있다.

1. 청소년 보호법의 1월 1일부터 제외

2. 각종 법령에서 청소년을 직접 정의하면서 생긴 고등학교 재학 중 제한

3. 그냥 성인(민법상 성인)


충분히 복잡하긴 하지만, 만20세던 민법상 성인이 만19세로 개정되면서 그나마 조금 쉬워졌다..ㅋㅋ


1. 청소년 보호법

청소년 보호법 제2조제1항

공중위생관리법

유해(?)한 것으로부터 청소년"을 보호" 하는 법령이다. 대표적으로 제한되는 것이 술, 담배.

수능이라는 우리나라 사회적 특성상, 예외적으로 특이하게 만19세가 되는 해의 1월 1일부터 이 법에서 정의하는 청소년에서 제외된다. 물론 다른 법에서 이 법을 다시 참조하지 않는한, 다른 법령과는 상관없다.


술, 담배는 워낙 유명해서 다들 잘 알겠지만,, 또 술 담배 외엔 딱히 청소년 보호법이 풀리면서 가능해지는게 잘 없다..

각 법령에서 다시 청소년을 정의해버려서;;;

찜질방 정도가 여기에 해당된다.


빠른 년생 중에 대학교 1학년 생일이 지나면 술,담배를 할 수 있는 것으로 착각하는 친구들이 있는데,

생일이 지난다고 해서 부모 동의하에 결혼이 가능해질 뿐, 달라질 건 없다. 1년 더 기다리거라...ㅋㅋㅋ


2. 고등학교 재학 제한

영화 및 비디어물의 진흥에 관한 법률 제2조제18항 (극장)

음악산업진흥에 관한 법률 제2조제14항 (노래방)

게임산업진흥에 관한 법률 제2조제10항 (PC방, 오락실)


아무생각없이 극장을 넣었는데, 극장은 청소년 유해업소가 아니다...ㅋㅋㅋㅋ

노래방, PC방, 오락실 등 흔히 '청소년 유해 업소, 10시 이후 출입 제한' 으로 알고 있는 것들이 여기에 해당된다.

각 업종을 정의하는 법령에서 청소년을 정의할 때 청소년 보호법을 끌어 쓰지 않고,

"청소년"이라 함은 18세 미만의 자( 초.중등교육법 제2조의 규정에 따른 고등학교에 재학 중인 학생을 포함한다)

이런식으로 직접 정의해 버린다.

고로 일반적인 고3의 나이지만 고등학교에 다니지 않는 학생이 생일이 지나면 출입이 가능하고,

  수능친 후 1/1 이 지났더라도 2월달 졸업하기 전인 학생은 10시 제한에 걸린다.

빠른 년생의 경우엔 졸업한 후에 노래방, PC방은 10시 이후 출입이 가능하다는 장점이 있다ㅋㅋ

만18세 제한이 있지만, 빠른년생이라면 졸업하고 나면 생일은 다 지나있겠지?


이렇게 복잡하게 따지지 않고 1월 1일이 지나면 그냥 봐주는 곳도 많다지만, 법은 그렇다.

참고로 당구장은 청소년 유해업소가 아니다. 고등학교 재학 중에도 10시 이후에 상주 가능! ㅋㅋ


3. 민법상 성인

민법 제4조

우리나라 민법상 성인 나이는 만19세. 고로 수능친 직후라면 아직 민법상 성인은 아니다.

(결혼해서 성년 의제되지 않았다면) 민법상 성인이 되지 않으면 휴대폰 구매 등 각종 계약은 직접 할 수 없다.

(깊게 들어가면 복잡하니 여기까지)

생일이 지나 만19세가 되면 그냥 성인이다. 투표도 할 수 있고, 결혼도 자유고... 더이상 딴지 걸릴 것이 없음..




사실 이런걸 알아도 막상 써먹으려면 머리아프다..ㅋㅋ

업주가 거부해버리면 답 없기도 하고....

젤 좋은건 그냥 생일이 빨리 지나버리는거....


하지만 늙기 싫어..ㅠㅠㅠㅠㅠ




⑴ 공중위생관리법 시행규칙 제7조

→ 별표 4 공중위생엽업자가 준수하여야 하는 위생관리기준 등(제7조관련)

2-라-(10) ..생략.. 청소년(청소년보호법에서 정한 청소년을 말한다. 이하 같다) ..생략..

'기타' 카테고리의 다른 글

dd-wrt dns 설정  (1) 2015.01.15
Facebook 전체공개 게시물 댓글달기 권한  (1) 2015.01.08
티스토리 RSS 설정  (6) 2013.12.05
오픈소스 라이센스  (0) 2012.01.22
마인크래프트 논리 게이트  (1) 2011.01.20

방명록을 통해 RSS 업데이트가 안되니 글을 '발행'으로 해달라는 요청을 받았다.


확인해보니 Daum View 로 발행했던 2개의 글 외엔 안뜨는걸 확인.


그래서 전체 글 중 비공개글을 하나하나 걸러내며 다 발행으로 바꿨는데,,

그래도 업데이트가 안된다...!!


처음엔 딜레이가 있나,, 했는데 몇시간이 지나도 안되서 좀 더 검색을 해봤다.


명확히 설명된 글은 없엇지만, 티스토리 관리 - 글 설정 메뉴에서 설정을 해주면 된다.

(꼭 발행으로 해야되는건 아니더라...)




내 설정은 위와 같다ㅎㅎ



글쓰기 환경 - 공개는 기본값 설정이다.

여기 설정해둔게 '글쓰기'를 할 때 기본값이 된다.


그리고 공개정책 - RSS. 여기가 문제였다.


나의 경우 발행글로 선택이 되어있어서 발행한 글 외에는 RSS 로 올라가지 않은 것으로 보인다.

글 목록에서 공개 글들을 다 발행으로 바꾸었지만, Daum View 로 제대로 발행된게 아니라 그런지 여전히 RSS 에 나타나진 않았다..


그래서 그냥 공개글로 설정을 바꾸었더니 모든 글들(정확힌 설정한대로 최근 10개의 글)이 RSS 로 올라갔다.


그리고 RSS feed 주소로 직접 들어가면 갱신이 되어있지만 한RSS 에서는 제대로 안되길래

한RSS에서 글 목록 젤 아래 즉시수집 요청하기를 했더니 곧 갱신되더라...



'기타' 카테고리의 다른 글

dd-wrt dns 설정  (1) 2015.01.15
Facebook 전체공개 게시물 댓글달기 권한  (1) 2015.01.08
청소년 나이 제한 정리  (0) 2014.01.28
오픈소스 라이센스  (0) 2012.01.22
마인크래프트 논리 게이트  (1) 2011.01.20

+ Recent posts