회원가입을 하면 원하는 문장을
저장 할 수 있어요!
다음
매일 업데이트되는 개발 프로젝트를 만나보세요
본문은 요즘IT와 번역가 Mr.P가 함께 만든 해외 번역 콘텐츠입니다. 이 글을 작성한 Frank Andrade는 데이터 과학 및 프로그래밍 기술에 관한 다양한 글을 업데이트하고 있으며, 총 400만이 넘는 누적 조회수를 기록할 정도로 인기 에디터입니다. 이번 글은 파이썬을 처음 배우는 초보자들이 흔히 실수하는 나쁜 코딩 습관들에 관해 소개하고 있습니다.
회원가입을 하면 원하는 문장을
저장 할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
개발
본문은 요즘IT와 번역가 Mr.P가 함께 만든 해외 번역 콘텐츠입니다. 이 글을 작성한 Frank Andrade는 데이터 과학 및 프로그래밍 기술에 관한 다양한 글을 업데이트하고 있으며, 총 400만이 넘는 누적 조회수를 기록할 정도로 인기 에디터입니다. 이번 글은 파이썬을 처음 배우는 초보자들이 흔히 실수하는 나쁜 코딩 습관들에 관해 소개하고 있습니다.
파이썬을 처음 배울 때, 우리는 자신도 모르게 몇 개의 나쁜 코딩 습관들을 갖게 됩니다. 처음에는 문제없이 작동했지만, 나중에 정상적으로 작동하지 않거나 뒤늦게 문제를 더 쉽게 해결할 수 있는 내장 함수를 찾는 경우도 있습니다.
파이썬을 처음 접하는 대부분의 사람은 처음 배울 때 가진 나쁜 습관을 여전히 하나 이상 가지고 있습니다. 오늘은 그 나쁜 습관들을 쉽게 고칠 수 있는 방법들에 관해 설명해 보겠습니다.
가끔 코딩하다 귀찮으면 from xyz import *
를 사용해서 모든 모듈[1]을 한 번에 불러옵니다. 이것은 여러 가지 이유로 좋은 습관이 아닙니다.
몇 가지 예를 들면 다음과 같습니다:
이 문제를 어떻게 해결할 수 있을까요? 우리는 사용하려는 특정 객체를 불러오거나, *를 사용하지 않고 전체 모듈을 불러온 후 객체를 사용하기 전에 모듈명을 명시할 수 있습니다.
# Using import *
# Bad
from math import *
print(floor(2.4))
print(ceil(2.4))
print(pi)
# Good
import math
from math import pi
print(math.floor(2.4))
print(math.ceil(2.4))
print(pi)
저는 오랫동안 이것을 무시해왔습니다. 덕분에 ‘파이참(Pycharm)’을 사용하면서 못생긴 밑줄과 함께 나타나는 PEP 8: do not use bare ‘except’
라는 경고문을 셀 수 없이 많이 봐왔습니다. 이것은 PEP 8 가이드라인에서 권장되지 않습니다.
# Try - except
# Bad
try:
driver.find_element(...)
except:
print("Which exception?")
# Good
try:
driver.find_element(...)
except NoSuchElementException:
print("It's giving NoSuchElementException")
except ElementClickInterceptedException:
print("It's giving ElementClickInterceptedException")
bare ‘except’
의 문제는 SystemExit와 KeyboardInterrupt 예외(exception)를 잡아서, Control-C로 프로그램을 중지하기 어렵게 만든다는 것입니다. 다음에 try/except를 사용할 때에는 except 절에 예외를 꼭 지정하십시오.
우리는 파이썬이 삶을 더 생산적이고 쉽게 만드는 패키지를 많이 가지고 있다는 사실을 종종 잊어버리곤 합니다. Numpy는 수학 계산에 사용되는 그러한 패키지 중 하나입니다. Numpy는 수학 연산을 푸는 데 있어서 for
루프를 사용하는 것보다 더 빠르게 해결해 줍니다.
우리가 random_scores
배열을 가지고 있고, 시험에 실패한 사람들의(score <70) 평균 점수를 얻으려고 한다고 가정해봅시다. 이것을 for
루프로 해결해 보겠습니다.
import numpy as np
random_scores = np.random.randint(1, 100, size=10000001)
# Bad (solving problem with a for loop)
count_failed = 0
sum_failed = 0
for score in random_scores:
if score < 70:
sum_failed += score
count_failed += 1
print(sum_failed/count_failed)
이제 Numpy로 해결해보겠습니다.
# Good (solving problem using vector operations)
mean_failed = (random_scores[random_scores < 70]).mean()
print(mean_failed)
둘 다 실행해보면 Numpy가 더 빠르다는 것을 알 수 있습니다. 왜냐하면 Numpy는 작업을 벡터화[2]하기 때문입니다.
파이썬으로 열었던 파일을 다시 닫아야 하는 건 모두가 알고 있는 사실입니다. 이것이 우리가 작업할 때마다 open
, write/read
, close
를 사용하는 이유입니다. 여기까진 괜찮습니다. 그러나 우리가 write/read
메소드를 사용할 때 예외가 발생하게 된다면 이미 열린 파일은 닫히지 않습니다.
이 문제를 피하기 위해 우리는 다음과 같은 with
구문을 사용해야 합니다. 이 경우 예외가 발생하더라도 파일을 정상적으로 닫을 수 있습니다.
# Bad
f = open('dataset.txt', 'w')
f.write('new_data')
f.close()
# Good
with open('dataset.txt', 'w') as f:
f.write('new_data')
PEP8은 파이썬을 공부하는 사람이라면 반드시 읽어봐야 할 문서입니다. PEP8은 코드 작성에 대한 최고의 코드 샘플과 가이드라인을 제공합니다. (이 글의 몇몇 조언 또한 PEP8에서 발췌했습니다)
이 지침을 모두 따르는 것은 파이썬을 처음 접하는 사람들에게는 다소 부담이 될 수 있습니다. 다행히도 일부 PEP8 규칙이 IDE에 통합되어 있습니다. (이것이 제가 bare except 규칙에 대해서 알게 된 이유입니다).
파이참(Pycharm)을 사용한다고 가정할 때 PEP8 가이드라인에 따르지 않은 경우, 아래 이미지와 같이 이 못생긴 밑줄을 볼 수 있습니다.
밑줄 위로 마우스를 가져다 대면 밑줄 친 부분을 수정하는 방법에 대한 가이드라인이 표시됩니다. 위의 이미지의 경우 , 와 : 뒤에 공백을 한 칸 추가하면 해결됩니다.
# Good
my_list = [1, 2, 3, 4, 5]
my_dict = {'key1': 'value1', 'key2': 'value2'}
my_name = "Frank"
또한 변수명 x
를 my_name
으로 변경했습니다. 이것은 파이참(Pycharm)에서는 제안되지 않았지만, PEP8은 이해하기 쉬운 변수명 사용을 권장합니다.
저는 이 글을 읽는 독자들이 .keys
와 .values
가 무엇인지 알고 있다고 생각합니다. 혹시라도 모르는 분들을 위해 아래 코드를 통해 예시를 보고 넘어가겠습니다.
dict_countries = {'USA': 329.5, 'UK': 67.2, 'Canada': 38}
>>>dict_countries.keys()
dict_keys(['USA', 'UK', 'Canada'])
>>>dict_countries.values()
dict_values([329.5, 67.2, 38])
여기서 문제는 우리가 가끔 그것을 제대로 사용하지 않는 것입니다. 딕셔너리를 반복하여 key를 얻으려고 가정해 보겠습니다. 당신은 .keys
메소드를 사용하게 될 것입니다. 그러나 .keys
를 사용하지 않고 딕셔너리를 반복하는 것만으로 key값을 얻을 수 있다는 점을 알고 계셨나요? 다음과 같은 예시를 살펴보겠습니다.
# Not using .keys() properly
# Bad
for key in dict_countries.keys():
print(key)
# Good
for key in dict_countries:
print(key)
또한 딕셔너리의 value 값을 얻기 위한 해결 방법을 고민할 때 .items()
를 사용하면 더 쉽게 해결할 수 있습니다.
# Not using .items()
# Bad
for key in dict_countries:
print(dict_countries[key])
# Good
for key, value in dict_countries.items():
print(key)
print(value)
컴프리헨션은 이미 정의된 시퀀스를 기반으로 새로운 시퀀스(리스트, 딕셔너리 등)를 생성하려는 경우 더 짧은 코드로 해결할 수 있게 도와줍니다.
Countries
리스트의 모든 요소를 소문자로 치환하고 싶다고 가정해보겠습니다. 이것을 for
루프로 처리하는 대신 리스트 컴프리헨션으로 이것을 간단하게 처리할 수 있습니다.
# Bad
countries = ['USA', 'UK', 'Canada']
lower_case = []
for country in countries:
lower_case.append(country.lower())
# Good (but don't overuse it!)
lower_case = [country.lower() for country in countries]
컴프리헨션은 매우 효율적입니다. 그러나 그것을 과도하게 사용하지는 마세요! “단순한 것이 복잡한 것보다 낫다”라는 파이썬의 정도를 기억하시기 바랍니다.
우리가 초보자일 때 배운 첫 번째 함수 중 하나는 range
와 len
입니다. 따라서 대부분의 사람이 리스트를 반복할 때 range(len())
을 사용하는 나쁜 습관을 지니게 되는 것은 놀랍지 않습니다.
두 개의 리스트 countries
와 populations
을 가지고 있다고 가정해보겠습니다. 만일 우리가 두 리스트를 동시에 반복하기 원한다면, 당신은 아마 range(len())
을 사용할 것입니다.
# Using range(len())
countries = ['USA', 'UK', 'Canada']
populations = [329.5, 67.2, 38]
# Bad
for i in range(len(countries)):
country = countries[i]
population = populations[i]
print(f'{country} has a population of {population} million people')
이렇게 해도 작업은 완료됩니다. 그렇지만 당신은 enumerate
를 사용해서 작업을 더 단순화할 수 있습니다. (혹은 두 가지 리스트를 함께 반복하는 경우 zip
이 더 효율적입니다)
# OK
for i, country in enumerate(countries):
population = populations[i]
print(f'{country} has a population of {population} million people')
# Much Better
for country, population in zip(countries, populations):
print(f'{country} has a population of {population} million people')
아마도 우리가 처음 파이썬에서 배우는 것 중 하나는 +
연산자를 사용해 문자열을 결합하는 방법입니다. 이것은 유용합니다. 그러나 문자열을 결합하는 데는 비효율적인 방법입니다. 게다가 가독성마저 좋지 않습니다. 더 많은 문자열을 결합해야 하는 경우에 더 많은 +
연산자를 사용해야 합니다.
+
연산자를 사용하는 대신에, f-스트링(f-strings)을 사용할 수 있습니다.
# Formatting with + operator
# Bad
name = input("Introduce Name: ")
print("Good Morning, " + name + "!")
# Good
name = input("Introduce Name: ")
print(f'Good Morning, {name}')
f-스트링의 좋은 점은 문자열 결합에 유용할 뿐만 아니라 다양한 응용방법이 있는 것입니다.
Mutable value(ex: 리스트)를 함수의 디폴트 매개변수로 포함하면, 다음과 같은 예상치 못한 동작이 일어나게 됩니다.
# Bad
def my_function(i, my_list=[]):
my_list.append(i)
return my_list
>>> my_function(1)
[1]
>>> my_function(2)
[1, 2]
>>> my_function(3)
[1, 2, 3]
위에 코드에서, my_function
함수를 호출할 때마다, 리스트 my_list
는 이전 호출의 값을 계속 저장합니다. (우리가 함수를 호출할 때 빈 리스트로 시작하는 것을 원한다고 가정합니다) 이러한 동작을 피하기 위해서, 우리는 my_list
의 디폴트 값을 None
으로 설정하고 if
구문을 아래에 추가해야 합니다.
# Good
def my_function(i, my_list=None):
if my_list is None:
my_list = []
my_list.append(i)
return my_list
>>> my_function(1)
[1]
>>> my_function(2)
[2]
>>> my_function(3)
[3]
[1] 하나의 파이썬(.py) 파일을 의미하는 단어로 다른 파이썬 프로그램에서 사용하게끔 만들어 놓은 파일.
[2] 선형대수의 벡터 개념을 사용해 같은 인덱스에 위치한 원소들끼리 연산을 수행해서 반복문을 사용하지 않고 같은 위치의 값끼리 연산할 수 있는 것.
<원문>
10 Python Mistakes That Tell You’re a Nooby
위 번역글의 원 저작권은 Frank Andrade에게 있으며, 요즘IT는 해당 글로 수익을 창출하지 않습니다.
좋아요
댓글
공유
공유
요즘IT의 번역글들
요즘 해외 개발자들은 어떻게 일할까요? 기획자나 디자이너는요? 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. We are the world.
UX 디자이너에게 '제너럴리스트' 커리어가 함정인 이유
디자인훌륭한 개발자의 5가지 특징
개발구글AI '바드' 공개, SEO의 위기일까?
비즈니스프로그래밍의 종말
개발2023년 주목해야 하는 UI/UX 디자인 트렌드
디자인나쁜 자바스크립트 작성 습관과 작별하기
개발다음 11가지 언어들은 여전히 살아있나요?
개발2023년 최고의 노코드 개발 도구
개발디자이너를 위한 리액트 가이드
디자인제품 관리의 제0법칙
기획CTO는 어떤 일을 하나요?
개발제품 디자인으로 5초 테스트하기
디자인신입 개발자를 위한 완벽한 온보딩 가이드
개발설문지 양식 UX: 더 나은 설문조사를 위한 언어
기획영리한 개발자와 현명한 개발자의 차이점
개발프리랜서 업무 로드맵 작성의 5단계
프리랜싱모든 개발자가 시스템 디자인을 배워야 하는 이유
개발주니어 개발자에서 미드레벨 개발자로 도약하기 위한 7단계
개발최소 기능 제품 MVP, 이제 구시대적 발상인가요?
기획스크럼이 개발자를 괴롭히는 9가지 이유
개발북극성 지표(North Star Metric) 선택하기
비즈니스피그마는 여러분을 나쁜 디자이너로 만들고 있습니다
디자인인터랙션 디자인 vs 시각 디자인
디자인좋은 디자인 포트폴리오를 만드는 팁
디자인나에게 맞는 웹 기술 스택을 고르는 방법
개발윈도우11은 실패작이다
프로덕트“파이썬은 느리다”에 대한 반론
개발우리가 주목할 UI/UX 디자인 트렌드
디자인2022년 프론트엔드 개발 동향
개발코드 리뷰 문화
개발데이터 분석가는 무슨 일을 할까요?
개발최고의 오픈 소스 개발 도구 Top 8
개발데이터 분석이란 무엇일까?
개발Flutter로 UI를 구현하는 방법
개발자바 언어의 장단점과 2022년 트렌드
개발데브옵스(DevOps) vs 데브섹옵스(DevSecOps)
개발엑셀을 사용한 아름다운 데이터 시각화
디자인여러분을 더 나은 플러터 개발자로 만들어줄 7가지 프로젝트
개발모든 디자이너가 숙지해야 할 피그마 팁과 노하우
디자인디자인 원칙과 디자인 가치, 그리고 디자이너
디자인디자인, 산출물 그 이상을 넘어
디자인이 회사는 디자인에 투자하고 있는 회사일까요?
디자인애자일은 정말 디자인을 배제하나요?
디자인평판 관리가 프리랜서 경력에 미치는 영향
프리랜싱리액트 네이티브 개발자들이 겪는 가장 빈번한 5가지 문제와 해결책
개발“솔직히 우리가 하는 것은 스크럼이 아닙니다!”
기획데이터 시각화가 인류를 위기에서 구한 세 가지 역사적 사건
디자인NFT의 장밋빛 미래는 사실일까?
기획피그마 토큰으로 디자인 시스템 만들기
디자인디자이너+개발자 = 슈퍼팀 만들기
기획1인 개발자로서 테크 스타트업을 운영하며
기획웹 디자이너가 PX대신 REM을 사용해야 하는 이유
디자인100개의 스타트업을 멘토링하며 깨달은 성공의 비밀
기획중화권 앱 UI가 영미권 앱 UI와 다른 점 알아보기
프로덕트내가 테크 리더로 일하면서 얻은 8가지 교훈
기획모두가 즐길 수 있는 디자인 검토 회의 만들기
디자인프로덕트 매니저에서 프로덕트 마스터로
기획10배 이상 뛰어난 개발자가 되는 법
개발제품 디자인 관점에서 바라보는 NFT 아바타 열풍
디자인에어비앤비: 대규모 iOS 앱 개발 생산성을 위해 바꾼 것들
개발스포티파이: 맞춤형 플레이리스트 개발 비하인드 스토리
개발프리랜서가 일하게 될 15가지 유형의 프로젝트
프리랜싱슬랙: 제품 원칙을 통해 다시 태어난 알림 기능
프로덕트페이팔: 실시간 그래프 데이터베이스 분석을 통해 사기를 방지하는 방법
개발트위터: 수십억 개의 이벤트를 실시간 처리하기
개발슬랙: 4가지 애자일 가치와 방법
기획스퀘어: 모바일 우선을 넘어 웹에서 누리는 모바일앱 경험
개발스포티파이: 카피를 언어로 만드는 UX 라이팅
기획마이크로소프트: 디자인의 미래를 위한 4가지 원칙
디자인메타: AR/VR 경험까지 고려한 디자인 청사진
프로덕트슬랙: 훌륭한 마케팅 카피를 위한 5가지 원칙
기획2022년 UX/UI 디자인 트렌드
디자인구글: 가변 폰트의 놀라운 활용법
디자인에어비앤비: 위기 상황에서의 디자인 원칙 5가지
기획어떻게 두 명의 인턴이 수백만 개의 코드들을 보호할 수 있었나
개발Lattice로 마이크로 프론트엔드를 구축하는 법
개발Cool Cats NFT를 구축하면서 배운 것
개발웹 컴포넌트가 프론트엔드 프레임워크를 대신할까?
개발당신이 NFT에 대해 알아야 할 모든 것
개발우리에겐 이상하지만 개발자들에겐 일상인 일들
개발Next.js 12에서 주목해야 할 5가지 변화
개발스벨트 vs 리액트, 누가 더 뛰어날까?
개발개발자를 위한 iOS 15의 새로운 기능
개발내가 오픈소스를 싫어하는 이유
개발프로덕트 매니지먼트 고객 여정 5단계
기획클럽하우스의 인기는 모두 거품이었다?
프로덕트데이터 기반 의사결정의 장점
기획시각 디자인의 폐쇄성 법칙이란?
디자인사용자 경험(UX) vs 서비스 디자인
기획프로덕트 매니저는 하루 종일 무슨 일을 할까?
기획제품 주도 성장은 어떻게 이루어지는가?
기획UX를 망치지 않는 설득력 있는 배너 디자인
디자인팝업(Pop-up)으로 불리는 것들에 대하여
디자인드롭다운(Drop-down)으로 불리는 것들에 대하여
디자인당신의 생각을 표현하는 새로운 이모지
디자인가장 똑똑한 소프트웨어 엔지니어에게 배운 10가지 교훈
개발성공적인 UX 프로젝트를 위한 가장 중요한 질문
디자인2021년, UI 디자이너가 모바일 앱에서 흔히 저지르는 실수
디자인IT 매니저가 되는 방법과 성공하기 위한 요소
기획슬랙(Slack) 같은 앱을 만들려면 비용이 얼마나 들까?
개발아웃소싱이 이토록 인기를 얻게 된 이유는?
아웃소싱마케터가 UX 관련 역량을 키워야 하는 이유
기획미니멀리즘 디자인의 핵심적인 요소들
디자인새로운 소프트웨어 개발사가 필요하다는 7가지 신호
아웃소싱2021년을 이끌어가는 프론트엔드 개발 트렌드 5가지
개발PM을 성장시키는 학습 프레임워크
기획UI 카피라이팅, 어떻게 써야 하나요?
기획트렌드 예측: 경쟁에서 앞서는 방법
기획제품 사고(product thinking)의 힘
기획인하우스 vs 아웃소싱, 소프트웨어 개발 어떻게 하나요?
개발그림을 못 그리는 사람도 쉽게 와이어프레임 그리는 방법
기획스타트업 기업들에게 아웃소싱이 중요한 이유
아웃소싱제품과 기능, 성공적으로 종료하는 방법 (下)
기획제품과 기능, 성공적으로 종료하는 방법 (中)
기획제품과 기능, 성공적으로 종료하는 방법 (上)
기획UX 디자이너에게 반드시 필요한 12가지 스킬
디자인패스워드 없는 세상이 오고 있다
개발디자이너를 쉽게 잃는 방법 10가지
디자인프론트엔드 코딩 작업에 영감을 줄 8가지 아이디어
개발구글이 아웃소싱을 하는 이유: 아웃소싱 성공사례 5가지
아웃소싱일 잘하는 PM이 되기 위한 로드맵 도구 5가지
기획이제는 말할 수 있다! 아웃소싱에 대한 오해 11가지
아웃소싱디자인 트렌드, 모던 미니멀 스타일의 UI 가이드
디자인MVP 개발을 아웃소싱으로 해도 될까요?
아웃소싱온보딩 효과를 높이는 '좋은' 귀차니즘 3가지
기획게임처럼 즐겨라, 게임화 기법 TOP3
기획시니어 소프트웨어 엔지니어는 어떻게 일할까?
개발프로덕트 매니저가 글을 잘 써야 하는 이유
기획2030년엔 사라질 수도 있는 프로그래밍 언어 5가지
개발고객들이 언제나 옳은 것은 아니다
기획유저 스토리는 무엇인가?
기획고객 성공을 위한 14계명
기획8px 그리드 시대가 끝나고, 4px 그리드의 시대가 열릴까?
디자인모바일 앱은 더 이상 스타트업에게 좋은 아이디어가 아니다
비즈니스과연 구글의 UX 강좌는 도움이 될까요?
디자인프로덕트 매니저 여러분, ‘소비자의 요구사항 수집’을 그만두십시오
기획고객 여정과 경험 지도의 차이점
기획내가 AI 업계를 떠난 이유 5가지
개발모달윈도우(팝업)를 디자인할 때 생각할 9가지 원칙
디자인대기업 vs 중소기업, B2B SaaS 스타트업을 위한 시장은?
기획내가 개발 인터뷰에서 면접자에게 감동한 이유
개발HTTP의 새로운 메서드, 서치(SEARCH)에 대하여
개발세상의 모든 프로덕트 디자이너를 위한 5가지 심리학 원칙
디자인2021년 테스트 자동화 트렌드 리포트 (下)
개발2021년 테스트 자동화 트렌드 리포트 (上)
개발아마존과 스포티파이는 어떻게 사용자를 유지하고 측정할까?
기획UX 디자이너라면 필수적으로 알아야 할 5가지 법칙
디자인앵귤러 vs 리액트, 2021년의 승자는?
개발2021년, SaaS 스타트업 시작을 위한 놀라운 아이디어 10가지
기획디지털 제품 관리에서 B2B와 B2C 사이의 차이점은?
기획빠르게 실행할 수 있는 ‘제품 요구사항 문서(PRD)’ 만들기
기획더 나은 제품을 위한 프로덕트 메트릭스 가이드
기획노 코드(No Code) 트렌드로 프로그래머들은 일자리를 빼앗길까?
개발넷플릭스의 플랫폼: 코스모스(Cosmos)에 대하여
프로덕트비즈니스와 애자일 조직은 어떻게 친해질 수 있을까요?
기획효과적인 제품 전략 세우기: 다수의 전략적 트랙(MuST) 활용
기획1년 만에 이메일 마케팅 효과를 극대화했던 방법
기획솔루션 아키텍트를 위한 팁: 아키텍처 다이어그램의 5가지 유형
개발새로운 맥 OS ‘빅서’에 대한 UX 디자이너의 생각
디자인디자인 트렌드, 뉴모피즘의 정석
디자인스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 3편
디자인스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 2편
디자인2021년 모바일 UX 트렌드 10가지
디자인스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 1편
디자인앱 설정 기능의 UX를 개선하는 효과적인 방법
디자인다크모드 UI 디자인의 원칙
디자인온라인 고객 경험을 개선하기 위한 5가지 방법
기획신생 스타트업에서 일하는 프로덕트 매니저를 위한 현실적인 조언
기획웹 개발자와 소프트웨어 개발자의 차이는 무엇인가요?
개발랜딩 페이지 디자인을 개선하는 13가지 꿀팁
디자인오프라인 비즈니스가 온라인에서 존재감을 가져야 하는 이유 5가지
기획상향식 가격 책정 및 패키징 정책: 사용자 여정을 가이드로 활용하기
기획B2B 제품의 UX, 그것은 숨겨진 영역인가요?
기획상단 내비게이션 vs 사이드 내비게이션, 어느 것이 더 나을까?
디자인자동완성 검색 기능 UX 설계를 위한 8가지 팁
디자인프로덕트 매니저는 전문적인 IT 기술을 갖춰야 하나요?
기획실리콘밸리 51개 기업들이 말하는 프로덕트 매니저의 역할 9가지
기획아웃소싱에 대한 모든 것
아웃소싱앱 디자인 가이드, 사람들이 즐겁게 사용할 수 있는 앱을 만드는 법
디자인처음부터 완제품이 아니라 ‘MVP’를 만들어야 한다
기획플러터 vs 리액트 네이티브 vs 네이티브, 성능이 더 우수한 것은?
개발스타트업 프로덕트 매니저로 성장하는 법, 30-60-90일 플랜
기획당신의 두뇌는 진보하고 있다: 성취감을 위한 3가지 전략
기획디자이너들을 편하게 해주는 HTML/CSS 마법 10가지
디자인코딩의 미래는 ‘노 코드(No Code)’이다
개발내가 엔지니어링 매니저로 일하면서 저지른 실수들
개발내가 롬 리서치(Roam Research)를 좋아하는 이유와 실제 사용법 (下)
기획내가 롬 리서치(Roam Research)를 좋아하는 이유와 실제 사용법 (上)
기획프로그레시브 웹 앱(PWA)이란 무엇이며, 왜 필요한가?
개발PWA vs 네이티브 앱, 어떤 것을 선택해야 할까?
개발UI 디자인에 여백을 활용하는 8가지 팁
디자인마이크로소프트와 링크드인의 새로운 시도, 프리랜서 마켓에 도전장을 던지다
기획토마스넷은 왜 가입자 수를 폭발적으로 늘려준 테스트 결과를 거부했을까?
기획잘 팔리는 기업용 소프트웨어 디자인하기
디자인파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 하편
개발파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 중편
개발파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 상편
개발업워크(Upwork)가 조사한 요즘 가장 인기 좋은 개발 기술 15가지
개발일자리 산업이 휴먼 클라우드(human cloud)에 적응하는 방법
기획팬데믹 이후 세계에서의 디지털 가속화는 어떤 모습일까?
기획같은 분야를 다룬 글들을 권해드려요.
요즘 인기있는 이야기들을 권해드려요.
좋아요
댓글
스크랩
공유
공유
지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!