2022/07/24에 해당하는 글 2

일본 생활의 장단점 - 현재 일본 외노자의 험난한 생활기

일본 생활 문화|2022. 7. 24. 13:52
반응형
728x170

사실 이 포스트는 제가 일본에서 경험했던 거 중에서 좋았다고 생각한거

 

나쁘다 혹은 불편하다 생각한 것들을 정리하기 위해 작성했습니다 ㅠㅠ

 

너무 많을거 같으니까 짧게 짧게 쓸게요 ㅎㅎ

 

질문 있으면 댓글 남겨주시면 감사하겠습니다!

 

앞으로도 조금씩 업데이트 하겠습니다...

 


1. 장점

 

음식물 쓰레기 처리가 정말 간편하다

 

한국에서 음식물 쓰레기는 따로 분류해야하기 때문에 따로 모아놓거나 해야하는 경우가 많습니다.

 

하지만 일본은 그냥 타는 쓰레기 / 안타는 쓰레기로 분류하며

 

음식물 쓰레기는 그냥 타는 쓰레기로 다 버리면됩니다. (한마디로 일반 쓰레기 = 음식물 쓰레기)

 

 

화장실이 욕실과 따로 분리되어있다

 

한국은 미국처럼 습식 화장실이기 때문에 대부분 욕실과 화장실이 같이 있는 곳이 많지만

 

낡은 집이 아닌 이상 화장실과 욕실이 분리되어있는 경우가 많습니다.

 

전 이게 더 좋더라고요 ㅎㅎ

 

 

문화가 비슷해서 외국 치고는 한국인이 살기 편하다

 

솔직히 비슷한건 맞는거 같습니다.

 

물론 다른 부분도 있지만 그렇게 주의해야할거나 불편한 부분은 없네요

 

그리고 편의시설 같은 부분도 한국만큼 편리한 곳이 많기 때문에 생활 자체는 만족스러운 부분이 많습니다.

 

 

한국처럼 왠만한 가게는 다 냉난방을 한다

 

이거 당연하게 생각하는 분들 많은데 다른 나라들은 없는 곳 많습니다...

 

솔직히 한국, 일본 이외에는 별로 없지 않을까 싶어요

300x250

2. 단점

 

돈을 지불하는 사람들은 대부분 '을'이다

 

일본은 정말 사기에 취약한 나라가 아닌가 생각합니다.

 

가격이 어느정도 이상하는 물건 구매 or 어떠한 계약(인터넷, 휴대폰 등)을 할 때는

 

반드시 인터넷 검색을 통해 검색을 해보는 것을 추천합니다.

 

계약같은 경우에는 대부분 말도안되는 계약 기간 내에 해지시 엄청난 위약금을 요구하는데가 많고

 

무조건 계약서에 적혀있으면 불합리하더라도 그것을 이행해야하는 경우가 많습니다.

 

 

임금에 비해 서비스 비용이 엄청 비싸다

 

이 부분은 정말 신기했습니다.

 

예를들면 제가 한국에 있을 때 미용실 가격은 일반적으로 1~2만원이었는데

 

일본에서 평균 미용실 가격은 4만원입니다.

 

시골, 도시 할거 없이 4만원인데가 많습니다.

 

이뿐아니라 물건 수리, 설치, 배송 등 대부분의 서비스 요금이 한국의 1.5배 ~ 2배정도 합니다.

 

 

세금이 비싼데 받는 혜택은 적다

 

사실 전 일본에 살면서 공무원들이 주는 혜택(치안, 공공업무, 거리 청소, 쓰레기 수거 등)을 제외하면

 

받아본 혜택이 하나도 없는거 같습니다...

 

사실상 저처럼 일본에서 직장인 생활을 하는 사람들 중에 무언가 혜택을 받고 있는 사람은

 

거의 없을거 같습니다.

 

한국은 저소득, 중소기업 청년들에게 여러 혜택을 주거나 공공주택, 청약 등 여려 혜택이 있는데

 

일본에서 일반인이 받을 수 있는 혜택은 거의 없네요

 

그냥 저임금 받는 사람은 허리띠 졸라메고 사는 방법 밖에 없습니다.

 

(전 어자피 해당하지 않지만... 그래도 없는건 없는거죠 ㅠㅠ)

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형

댓글()

코틀린 안드로이드 정규식(Regex) 활용하기 -기본부터 심화

반응형
728x170

안드로이드에서 정규식은 주로 회원가입 같이 입력한 값이 특정한 양식을 따르는지 확인할 때 주로 사용됩니다.

 


1. 기본 개념 및 양식

 

^ : 문자열의 시작을 의미.
$ : 문자열의 끝을 의미.
 . : 문자 한 개를 의미. '.'이 위치한 곳에 어떤 문자든지 1개의 문자가 들어감.
[ ] : 대괄호에 있는 문자 중 한 개를 의미. [abc]는 a, b, c 중 하나를 선택.
[^] : not의 의미로, 대괄호에서 쓴다면 [^abc] : a, b, c 제외하고 나머지를 의미.
| : or을 의미. a|b : a 또는 b.
() : 공통되는 부분을 묶을 때, 서브 패턴을 지정할 때 사용. abc|abd -> ab(c|d)로 바꿀 수 있음.
? : 문자가 0회 또는 1회 등장. a? b는 a가 나올 수도, 없을 수도 있음. ab, b.
* : 문자가 0회 이상 등장. a*b : b, ab, aaab, aaab..
+ : 문자가 1회 이상 등장. a+b : ab, aab, aaab..
{n} : 문자가 n개 나옴. a {2} b : aab
{n,} : 문자가 n개 이상 나옴. a {2,} b : aab, aaab, aaaab..
{n, m} : 문자가 n개 이상 m개 이하로 나옴. a {1,3 } b : ab, aab, aaab
\s : 공백 제거
\t : 탭
\d : 숫자, [0-9]와 동일
\b : 단어의 경계, 문자 사이의 공백
\w : 알파벳이나 숫자, [a-zA-Z0-9_]와 동일

 

위의 \s, \t, \d, \b, \w는 대문자로 바꾸면 반대 의미가 됩니다. 

300x250

2. 사용 방법

 

정규식을 만드는 방법에는 여러가지 방법이 있지만

대표적인거 1개만 가르쳐드리겠습니다.

 

정규식 정의 방법

 val regex = Regex("[0-9|a-z]")

위와 같이 Regex 안에 정규식을 정의할 수 있습니다.

 

 

정규식을 사용해서 문자열 확인

 

아래의 코드는 Activity의 onCreate() 안에 정의했습니다.

// 웹 표준 형식 확인
val regexWeb = Regex("https://(.+)")
// 숫자만 있는지 확인
val regexOnlyNumber = Regex("-?\\d+(\\.\\d+)?")
// 파일 디렉토리인지 확인
val regexFileDirectory = Regex("(.+)/(.+)\\.(.+)")
// 숫자만 확인
val regexPickNumber = Regex("[^0-9]")

// 입력한 값이 https 웹 형식을 따르는지
binding.isHttpsWeb.setOnClickListener {
    if (isRegexRight(binding.editText.text.toString(), regexWeb)) {
        makeToast("알맞은 https 형식입니다.")
    } else {
        makeToast("틀린 https 형식입니다.")
    }
}

// 입력한 값에 숫자만 들어있는지 확인
binding.isOnlyNumber.setOnClickListener {
    if (isRegexRight(binding.editText.text.toString(), regexOnlyNumber)) {
        makeToast("숫자만 존재")
    } else {
        makeToast("문자 존재함")
    }
}

// 입력한 값이 파일 위치를 가리키는지 확인
binding.isFileDirectory.setOnClickListener {
    if (isRegexRight(binding.editText.text.toString(), regexFileDirectory)) {
        makeToast("올바른 파일 디렉토리")
    } else {
        makeToast("틀린 파일 디렉토리")
    }
}

// 입력한 값에서 숫자만 뽑아서 다시 반환하기
binding.pickOnlyNumbers.setOnClickListener {
    binding.textView.text =
        onlyRemainsCertainChar(binding.editText.text.toString(), regexPickNumber)
}

// 해당 정규식이 맞는지 아닌지 확인
private fun isRegexRight(text: String, regex: Regex): Boolean {
return text.matches(regex)
}

// 해당 정규식에 맞는 값을 제외하고는 전부 삭제하기
private fun onlyRemainsCertainChar(text: String, regex: Regex): String {
return text.replace(regex, "")
}

3. 주로 사용되는 정규식 모음

 

자주 사용될거로 예상되는 정규식만 따로 모아서 정의해봤습니다.

// 웹 표준 형식 확인
val regexWeb = Regex("https://(.+)")
// 숫자만 있는지 확인
val regexOnlyNumber = Regex("-?\\d+(\\.\\d+)?")
// 파일 디렉토리인지 확인
val regexFileDirectory = Regex("(.+)/(.+)\\.(.+)")
// 숫자만 확인
val regexPickNumber = Regex("[^0-9]")
// 이메일 양식인지 확인
val regexEmail = Regex("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")
// 전화번호 양식인지 확인
val regexPhoneNumber = Regex("^\\d{2,3} - \\d{3,4} - \\d{4}\$")
// 숫자와 문자 포함 형태의 6 ~ 20글자의 간단한 비밀번호
val regexSimplePassword = Regex("^[A-Za-z0-9]{6,20}\$")
// 숫자와 문자 포함 형태의 6글자 이상의 간단한 비밀번호
val regexSimplePassword2 = Regex("^[A-Za-z0-9]{6}\$")
// 특수문자, 문자, 숫자를 포함한 6 ~ 20글자의 복잡한 비밀번호
val regexComplexPassword = Regex("^.*(?=^.{8,15}\$)(?=.*\\d)(?=.*[a-zA-Z])(?=.*[!@#\$%^&+=]).*\$")

4. 결과 화면

 

저는 이런식으로 화면을 구성하여 표현했습니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형

댓글()