캐치딜 백엔드 개발이야기 : 나에게 맞는 합리적인 서버 비용을 찾아서.. by 김철민
- AWS Credit 100달러 지급 (Credit은 매 달 받는 청구서에서 극 일부 서비스를 제외하고 크레딧으로 대체 가능) 서버 사용금액에 있어 한국의 주요 호스팅 서비스와 같이 사전에 서비스 금액을 계약하는게 아닌
- 덕분에 Selenium을 이용해서 Memory를 많이 쓰다보니 AWS 컴퓨팅(메모리) 사용량에 대한 비용이 청구가 많이 되는바람에 이는 Heroku의 Scheduler를 쓰는 것 보다 엄청난 과금이 부가가 되었었습니다
- 관제 등)에 있어 AWS에서 자동화 지원(Paas)을 해주다보니 이러한 장점 덕분에 EC2로 서버를 돌리는 것 보다 유지비용이 비싼게 현실입니다
[B급 프로그래머] 4월 2주 소식(빅데이터/인공지능, 읽을거리 부문) by 박재호
- 작년에 읽고 나서 게으름 때문에 서평을 올리지 못한 책이 몇 권 있는데
- 오늘 소개할 책은 그 중 하나인 <직업의 지리학>이다
- 서울과 수도권 일부 지역이 그렇게 인기를 끌고 최첨단 회사들이 집중되기 때문에 과밀 문제를 막기 위해 전
디자인 시스템 로드맵 by 김강령
- 나는 후자(제품이 발전하는 방향을 정확한 로드맵을 가지고 멤버 전체가 이해하고 있는 팀)를 시스템이 잘 운영될 징조로 본다
- 로드맵은 디자인 시스템 팀이 다른 사람에게 자신들이 하는 일을 잘 전달할 수 있게 만들어준다
- 우리의 반응형 리디자인 시스템 로드맵은 몇 년에 걸쳐 항상 "coming soon"칼럼에 반응형 이미지를 배치해두는 것처럼 보였다
에어비앤비 디자이너들이 말하는 Next design by 김강령
- 상호작용하며 적절한 타이밍에 사용자에게 접근 할 수 있도록 브랜드 보이스와 콘텐츠를 확장시킬 것이다
- 보이스 및 톤 가이드는 대부분 UX writer들이 어떻게 전략적으로 생각하는지에 대해 이해관계자들을 교육하기 위해서 사용되며 또한 좋은 글을 쓰는 것이 쉽거나 자의적이지 않다는 것을 증명하기 위해 사용된다
- 또는 그러한 학문적 접근에 대한 MIT Media Lab)을 만들어 초기 경력자와 경험이 풍부한 디자인 리더들이 미래를 생각하고 창조할 수 있는 준비를 하도록 해야한다
린 UX를 실무에 적용하는 효과적인 방법 by 김강령
- 저자인 로라 클라인은 린 UX로 어떻게 아이디어를 검증하고 이를 고객에 니즈에 맞게 디자인하여 제품을 만드는지 알려주고 있습니다
- 린 UX를 잘 다루고 싶다면 사용자 중심 디자인과 애자일을 어느 정도 이해해야 합니다
- 이렇게 반복적인 디자인과 기능 개선이 린 UX의 큰 특징이라고 할 수 있습니다
비주얼 디자인에서 UX 디자인으로 스펙트럼 넓히기 by 김강령
- 순수하게 디자인에 초점을 맞춘다고 하더라도 UX 프로세스 중에 구현할만한 게 있는지 살펴봐라
- 당신이 배운 UX 디자인 적용을 시도할 수 있다
- 당신은 UX 프로세스와 디자인을 분해하고 보여주는 실제 세계의 브리핑을 받을 수 있을 것이다
2020년 + 102 일 by 김정윤
Say Hi by 안기웅
- My name is Alex and I'm 32 years old" say_hi("Frank"
- My name is Alex and I'm 32 years old" if __name__ == '__main__': #These "asserts" using only for self-checking and not necessary for auto-testing assert say_hi("Alex"
- My name is Alex and I'm 32 years old"
Fizz Buzz by 안기웅
- # replace this for solution return 'Fizz Buzz' # Some hints: # Convert a number in the string with str(n) # These "asserts" using only for self-checking and not necessary for auto-testing if __name__ == '__main__': print('Example:') print(checkio(15)) assert checkio(15) == "Fizz Buzz"
- "15 is divisible by 3 and 5" assert checkio(6) == "Fizz"
- def checkio(number: int): if number % 15 == 0: return 'Fizz Buzz' elif number % 5 == 0: return 'Buzz' elif number % 3 == 0: return 'Fizz' return str(number)
Correct Sentence by 안기웅
- """ # your code here return text if __name__ == '__main__': print("Example:") print(correct_sentence("greetings
- friends")) # These "asserts" are used for self-checking and not for an auto-testing assert correct_sentence("greetings
- friends")) # These "asserts" are used for self-checking and not for an auto-testing assert correct_sentence("greetings
All Upper I by 안기웅
- is_all_upper('ALL UPPER') == True is_all_upper('all lower') == False is_all_upper('mixed UPPER and lower') == False is_all_upper('') == True
- def is_all_upper(text: str) -> bool: # your code here return False if __name__ == '__main__': print("Example:") print(is_all_upper('ALL UPPER')) # These "asserts" are used for self-checking and not for an auto-testing assert is_all_upper('ALL UPPER') == True assert is_all_upper('all lower') == False assert is_all_upper('mixed UPPER and lower') == False assert is_all_upper('') == True print("Coding complete
- if __name__ == '__main__': print("Example:") print(is_all_upper('ALL UPPER')) # These "asserts" are used for self-checking and not for an auto-testing assert is_all_upper('ALL UPPER') == True assert is_all_upper('all lower') == False assert is_all_upper('mixed UPPER and lower') == False assert is_all_upper('') == True print("Coding complete
Acceptable Password I by 안기웅
- def is_acceptable_password(password: str) -> bool: # your code here return True if __name__ == '__main__': print("Example:") print(is_acceptable_password('short')) # These "asserts" are used for self-checking and not for an auto-testing assert is_acceptable_password('short') == False assert is_acceptable_password('muchlonger') == True assert is_acceptable_password('ashort') == False print("Coding complete
- def is_acceptable_password(password: str): if len(password) > 6: return True else: return False
- if __name__ == '__main__': print("Example:") print(is_acceptable_password('short')) # These "asserts" are used for self-checking and not for an auto-testing assert is_acceptable_password('short') == False assert is_acceptable_password('muchlonger') == True assert is_acceptable_password('ashort') == False print("Coding complete
Number Length by 안기웅 about Git
- number_length(10) == 2 number_length(0) == 1
- def number_length(a: int) -> int: # your code here return None if __name__ == '__main__': print("Example:") print(number_length(10)) # These "asserts" are used for self-checking and not for an auto-testing assert number_length(10) == 2 assert number_length(0) == 1 assert number_length(4) == 1 assert number_length(44) == 2 print("Coding complete
- if __name__ == '__main__': print("Example:") print(number_length(10)) # These "asserts" are used for self-checking and not for an auto-testing assert number_length(10) == 2 assert number_length(0) == 1 assert number_length(4) == 1 assert number_length(44) == 2 print("Coding complete
End Zeros by 안기웅
- def end_zeros(num: int) -> int: # your code here return None if __name__ == '__main__': print("Example:") print(end_zeros(0)) # These "asserts" are used for self-checking and not for an auto-testing assert end_zeros(0) == 1 assert end_zeros(1) == 0 assert end_zeros(10) == 1 assert end_zeros(101) == 0 assert end_zeros(245) == 0 assert end_zeros(100100) == 2 print("Coding complete
- if __name__ == '__main__': print("Example:") print(end_zeros(0)) # These "asserts" are used for self-checking and not for an auto-testing assert end_zeros(0) == 1 assert end_zeros(1) == 0 assert end_zeros(10) == 1 assert end_zeros(101) == 0 assert end_zeros(245) == 0 assert end_zeros(100100) == 2 print("Coding complete
- Click 'Check' to earn cool rewards!") if __name__ == '__main__': print("Example:") print(end_zeros_2(0)) # These "asserts" are used for self-checking and not for an auto-testing assert end_zeros_2(0) == 1 assert end_zeros_2(1) == 0 assert end_zeros_2(10) == 1 assert end_zeros_2(101) == 0 assert end_zeros_2(245) == 0 assert end_zeros_2(100100) == 2 print("Coding complete
Backward String by 안기웅
- backward_string('val') == 'lav' backward_string('') == '' backward_string('ohho') == 'ohho' backward_string('123456789') == '987654321'
- def backward_string(val: str) -> str: # your code here return None if __name__ == '__main__': print("Example:") print(backward_string('val')) # These "asserts" are used for self-checking and not for an auto-testing assert backward_string('val') == 'lav' assert backward_string('') == '' assert backward_string('ohho') == 'ohho' assert backward_string('123456789') == '987654321' print("Coding complete
- if __name__ == '__main__': print("Example:") print(backward_string('val')) # These "asserts" are used for self-checking and not for an auto-testing assert backward_string('val') == 'lav' assert backward_string('') == '' assert backward_string('ohho') == 'ohho' assert backward_string('123456789') == '987654321' print("Coding complete
Remove All Before by 안기웅
- border: int) -> Iterable: # your code here return items if __name__ == '__main__': print("Example:") print(list(remove_all_before([1
- 3))) # These "asserts" are used for self-checking and not for an auto-testing assert list(remove_all_before([1
- 3))) # These "asserts" are used for self-checking and not for an auto-testing assert list(remove_all_before([1
[Stack] [BOJ 9012] 괄호 by 유형곤
- 올바르지 않은 괄호는 두 가지로 생각할 수 있다
- 처음에 이 문제를 단순히 여는 괄호와 닫는 괄호의 개수를 체크해서 풀려고 할 수 있는데
- 그리고 이 문제는 꼭 스택을 안 써도 괄호의 개수만 세어도 풀 수 있다
[Stack] [BOJ 4949] 균형잡힌 세상 by 유형곤
- 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다
- 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고
- 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다
Replace First by 안기웅
- from typing import Iterable def replace_first(items: list) -> Iterable: # your code here return items if __name__ == '__main__': print("Example:") print(list(replace_first([1
- def replace_first(items: list) -> Iterable: if len(items) > 0: first_list = [] for i in items[:1]: first_list
- def replace_first(items: list) -> Iterable: if len(items) > 0: first_list = [] for i in items[:1]: first_list
[Stack/미완] [BOJ 1918] 후위 표기식 by 유형곤
- 스택을 활용하여 중위표기식을 후위표기식으로 바꾸는 문제로
- 후위표기식으로 바꾸면 연산자 우선순위에 상관없이 문제를 풀 수 있어서
- 정확히 말하면 이미 후위표기식으로 표기된 수식은 좌 -> 우에서 읽는 것이 기존에 표기된 중위표기식의 우선순위가 고려된 것이다