IT기초/IT기본용어(14)
-
Event Storming?(이벤트 스토밍이란?)
어플리케이션을 구축하기 위한 설계 방법으로 이벤트 스토밍 이라는 방식이 있다. 이 이벤트 스토밍을 하기위해서는 어떻게 해야할까? 1. 먼저 Domain event를 먼저 정의한다. 브레인 스토밍이란것을 한 번쯤은 해 봤을 것이다. 여기에서 이벤트 라는 개념을 하나 추가 해 둔 것이다. 이벤트는 사용자, 혹은 특정 유저가 활동(action)을 해서 생기는 결과값이다. 이런 이벤트와 관련된 내용을 브레인 스토밍하여 중복된것들을 모두 없애거나 합친 후 이런 이벤트들을 발생순서대로, 동시 발생되는 이벤트의 경우 수직으로 합치는 등 규합을 한다. 그런 후 비즈니스 용어로 어떤 일이 발생했는지 기입하는 행위를 의미한다. (시스탬 내부적으로 로직이 어쩌고 저쩌고가 아님! ==> 백엔드에서 어떻게 로직이 돌아가고..어..
2022.01.03 -
Session과 JWT 그리고 Cookie
정말 뜬금없지만 어릴적 자주 보던 만화 '스폰지밥'의 한 장면이다. 스폰지밥이 할머니댁에 방문해 우유에 쿠키를 찍어 먹는 장면이다. 이 장면을 볼때마다 참 맛있겠다 라는 상상을 하곤 했다. 뜬금없이 왜 먹는 쿠키 이야기를 할까?? 인터넷에도 쿠키라는게 존재한다. 다음의 화면은 '마이크로소프트 엣지'라는 브라우저의 설정창에서 쿠키를 검색했을때 나타나는 화면이다. 주로 기록, 암호, 쿠키, 데이터 등이 연관이 되어있음을 알 수 있다. 인터넷에서 말하는 쿠키란 무엇일까? 일반적으로 쿠키를 사용하게 되면 서버에 있는. 우리가 쿠키를 사용하게 된다면 서버에 있는 브라우저에 데이터를 넣거나 수정할 수 있게 되며 이 속에는 인증을 포함한 다양한 정보(언어 설정, 도메인에 따른 유통기한 등)을 설정할 수 있게 된다. ..
2021.10.04 -
NAT(network address translation)란 무엇일까?
NAT(network address translation)란 무엇일까? 일반적으로 라우터에서 많이 사용되는 서비스이다. 직독 직해를 하면 '네트워크 주소 변환'이라고 해석할 수 있다. 우리는 왜 네트워크 주소를 변환하고 사용해야할까?? 이것을 알기 위해서는 먼저 ip에 대한 이해가 필요하다. 최초로 IP라는 개념을 만들때 개발자들은 약 40억개가 넘는 ip를 만들었다. 이렇게 많은 ip를 개발자들은 다 쓸것이라고 상상하지 않았다. (앞으로 말하는 ip는 특별한 말이 없으면 전부 공인 ip를 지칭한다. 이와 반대되는 사설 ip는 중첩되는 ip를 만들고 싶은만큼 만들 수 있다.) 이정도면 뭐...인류가 망하기전까지 쓰지않겠냐..? 라는 생각이었지만 어림도없지 ㄹㅇㅋㅋ 하지만 개발자들의 생각과는 달리 인류의 ..
2021.09.28 -
도메인 주도 설계(Domain Driven Development)
'DDD' 뜬금없는 이 영단어는 무엇을 의미하는 것일까? 닌텐도 게임 중 별의 커비에 나타나는 디디디 대왕? 아니면 유희왕 카드에 나오는 카드군? 이 단어를 보고 생각하는 단어들은 무수히 많겠지만 오늘은 Domain Driven Development 즉 도메인 주도 설계 라는것이 무엇인지에 대해 알아보는 시간을 가져보도록 하겠다. 먼저 아래의 그림은 일반적인 프로세스를 운영할 때 필요한 직종과 그 프로세스에 대한 표 이다. 서비스를 만들거나 매출을 내는 직군은 크게 기획자, 마케터, 개발자, 디자이너 로 4가지 직군이 있다. 기획자는 사업과 서비스를 기획하고 이 기획에 대한 상세한 요구사항을 정의해 둔다. 마케터의 경우 기획자와 비슷하게 사업계획을 수립하고 지표 관리를 한다. 직접 서비스를 개발한 후에 ..
2021.09.20 -
모놀리식 VS 마이크로서비스 아키텍쳐
Django를 기반으로 개발을 할때 서비스를 개발할때 전통적으로 옛날의 사람들은 모든 서비스를 한 곳에 모아서 개발하였다. 이때 기획단계에서 모든 서비스와 기능을 하나로 규합해서 서비스를 개발하자 라는 것이 최초의 개발 풍조였다. 하지만 기술이 발전과 보안, 유지 등의 수없이 다양한 이슈로 인해 서비스를 각각 잘게 나누어서 개발하는 분위기가 만들어 졌다. 전자는 전통적인 아키텍쳐인 모놀리식(Monolithic==하나의 라는 의미를 가진다.)이라고 표현하며 후자는 마이크로서비스 라고 명한다. 이 시간에는 각 서비스의 장 단점에 대해 알아보는 시간을 가져보겠다. 먼저 전통적인 방식인 모놀리식 아키텍쳐의 장 단점이다 모놀리식 아키텍쳐의 장점 end - to - end(끝 단 끼리의 서비스) 테스트가 굉장히 용..
2021.09.19 -
CI/CD란???
개발자 혹은 it업계 종사자들은 종종 CI/CD 파이프라인이라는 말을 사용한다. "CI/CD구축해야해요.", "사용했어요." 등등. 근데 CI/CD가 정확하게 뭘까? 프로그렘(어플리케이션)을 개발할때 각각의 모든 단계를 '자동화'하여 좀 더 빠르고 효율적으로 구축해 소비자(사용자)에게 지속적으로 배포 할 수 있는 프로세스를 의미한다. 쉽게 말해서 하나의 개발 프로세스이다. 젠킨스, 깃허브, 깃렙, 등의 툴을 사용할 수 있는데 CI/CD를 조금 풀어서 알아보도록 하자. Continuous Integration(지속적인 통합) 1991년 Grady라는 분을 통해 처음으로 나타나게 되었는데 단어의 말 뜻 그대로 지속적인 통합을 의미한다. 개발자들은 최대한 자신이 만들 코드를 작은 단위로 나누어서 Reposit..
2021.09.02