전체 글
-
로그인을 구현하시나요? 당장 Session사용을 멈추세요.프로그래밍 2024. 2. 15. 13:27
Session 객체에 로그인 정보와 유무를 담지 마세요. 빌드 후 다시 로그인 하시겠습니까? 웹 개발을 할때 가장 좋지 못한 계정 관리 케이스가 무엇이냐고 물어 본다면 아래와 같다. "로그인 상태를 Session으로 처리하려고 할때이고 이 말은 빌드할때마다 로그인을 다시 해야 된다는 이야기다." 그럼 어떻게 처리해야 할까? 우리는 JWT가 있음을 알고 있다. 또한 JWT에 Claim정보를 넣을 수 있다는 것도 알고 있다. Claim정보에 사용되는 것들은 대부분 규격화 되어 있다. 따라서 해당 규격에 맞게 JWT를 생성해서 Client(Browser)에서 보관하고 있어야 한다. 그것이 쿠키가 되었든 로컬스토리지가 되었든 말이다. 그럼 서버측에서는 어떻게 로그인 되었는지 알까? JWT는 암호화되어 발행되고 ..
-
ASP.NET 개발에서 DataTable은 만악의 근원입니다.프로그래밍 2024. 2. 15. 13:17
DataTable은 만악의 근원입니다. 먼저 간략하게 ASP.NET 개발의 역사에 대해 알아보자. ASP.NET 의 시초는 ASP이며 ASP는 JSP과 동등한 레벨의 Model1 스타일의 코드를 작성하는 개발 프레임워크이다. ASP와 JSP의 Model1은 페이지 코딩으로 ASP에서는 vb문법을 채택하고 있다. 중요한 점은 asp와 jsp 모두 페이지 중심의 개발 스타일이라는 점이다. ASP.NET으로 발전된 이후 ASP.NET은 2가지로 분리된다. 1. ASP.NET WEBFORM 2. ASP.NET MVC ASP.NET WEBFORM은 C# WINFORM에 기반한, 즉, CS 개발자가 접근하기 쉽게 하기위해 만들어진 프레임워크이다. ASP.NET MVC는 이름 그대로 Model-View-Control..
-
계정 시스템을 꼭 만들어 보세요.칼럼 2024. 2. 8. 14:05
대부분의 개발자는 단위 모듈, 단위 화면 중심에 개발을 진행하게 된다. 즉, 모든 구성 요소가 존재하는 상태에서 요구사항과 화면에 필요한 구성요소를 가지고 개발을 하게 된다. 왜 계정 시스템을 꼭 만들어 보아야 할까? 계정 시스템을 개발해 보지 않고는 절대 단위 모듈과 화면 개발에 대한 근본적인 사고를 할 수 없기 때문이다. 우리가 단순히 계정 시스템은 로그인과 로그아웃, 회원가입과 인증만 처리하는 것으로 생각하기 쉽다. 계정시스템은 단순히 위 기능을 넘어서 모든 단위 개발에 기초가 시작되는 지점이다. 또한 계정계를 어떻게 개발했는지에 따라 단위 개발에 개발 편의성이 달라진다. 웹 개발에 있어 로그인 이후에 벌어질 이후를 생각해 보자. 로그인 이후에 단위 개발자는 로그인한 유저가 누구이고 소속과 일부 개..
-
개발자의 절망칼럼 2024. 2. 7. 11:31
빅테크의 임팩트 기반 성과 평가는 끔찍하다 (pcloadletter.dev) Impact-based performance evaluation in big tech is terrible Impact-based performance evaluation in big tech is terrible My theory is that some performance consultants got paid a lot of money one day for a single word: "impact." If you have worked in big tech, you're probably all too familiar with this word because www.pcloadletter.dev 위 컬럼을 읽고 느끼는 소회는 아..
-
개발자의 행복을 파괴하는 10가지 방법칼럼 2024. 1. 9. 22:05
출처 : 개발자의 행복을 파괴하는 10가지 방법 | 인포월드 (infoworld.com) 10 ways to destroy developer happiness Nothing hurts developer productivity like bad management. Keep your dream team motivated by avoiding these common mistakes. www.infoworld.com 우리는 매년, 매번, 매순간 같은 일을 당하고 있습니다. 직장에서 개발자를 불행하게 만드는 10가지 방법 많은 회의 개최 후프를 뛰어 넘게하십시오. 학습 기회를 제공하지 않는다 건강한 일과 삶의 균형을 제공하지 마십시오. 불분명한 기대치 설정 무의미한 프로젝트에 할당 도구를 엉망으로 만드십시오. 그..
-
Why asp.net is too slow? compared to Java Spring.프로그래밍 2024. 1. 9. 22:01
asp.net 개발자는 종종 spring과 여러 성능면에서 비교를 강요 받는다. 왜 asp.net이 느리다고 하는 것일까? 이유는 당신이 잘 못 개발하고 있기 때문이다. 아래와 같은 이유로 당신은 잘 못 개발하고 있다. 1. Session을 함부로 사용하지 마라. 대량의 컬렉션 객체를 Session에 할당하지 마라. Session은 그렇게 사용하라고 있는게 아니다. 기본적으로 Session은 느리다. 2. Cookie를 사용해라. 단, 민감한 정보는 절대 들어가면 안된다. 유저를 최소한 식별할 수 있을 정도만 사용하라. 화면 상태를 저장하고 싶거든 indexeddb를 사용해라. 3. 싱글톤과 스코프를 사용해라. 설정 정보라면 싱글톤을 일반 로직이라면 스코프를 4. HttpClient는 스레드 세이프이다...
-
GM-NAA I/O 및 SHARE의 역사칼럼 2023. 12. 3. 19:21
원문 : GM-NAA I/O 및 SHARE의 역사 (abortretry.fail) The History of GM-NAA I/O and SHARE The Birth of Computer Operating Systems www.abortretry.fail 메인 프레임 시대에 대해 설명합니다. 오늘날의 컴퓨터 사용자가 1950년대와 1960년대 초반으로 시간을 거슬러 올라간다면 컴퓨팅이 완전히 낯설다는 것을 알게 될 것입니다. 당시는 메인프레임 머신의 시대였습니다. 상업적으로 판매된 IBM의 첫 번째 기계는 1952년 5월 21일에 발표된 701이었습니다. 이 기계는 1년 전에 출시된 UNIVAC 1103과 경쟁했습니다. IBM 701 701은 당시로서는 놀라운 기계였습니다. 뉴욕 포킵시에서 제작되었으며 무..
-
DTO 클래스 대신 C# 레코드 사용프로그래밍 2023. 12. 3. 19:00
원문 : DTO 클래스 대신 C# 레코드 사용 | by 라미 엘나기 | 2023년 10월 | 보통 (medium.com) Use C# Record Instead of DTO Classes C# 9.0 introduced a new type called record, making waves in the .NET community. The feature promises immutability, value equality, and… medium.com Immutable을 원하십니까? Record를 사용하세요. 레코드를 사용하는 이유 불변: 변경할 수 없는 데이터 모델을 사용하도록 권장합니다. 값 의미 체계: 가치 평등의 고통을 덜어줍니다. 줄어든 상용구: 코드베이스를 단순화합니다. 가독성: 코드를 보다 표현력..