본문 바로가기
728x90

분류 전체보기 51

개발 원칙 피라미드 미디엄에서 글을 읽다가 개발 원칙 관련 좋은 글이 있어서 간단하게 해석한 것을 공유해본다. 원문은 여기서 확인 간단히 설명하면 아래와 같다. 작동하게 하기 You Aren't goona need it 의 약자 : 더 이상 사용 안하는 코드 지우기 Keep it simple stupid 의 약자 : 복잡한 코드를 간단하게 리팩토링하기 Don't repeat yourself 의 약자 : 반복코드 제거하기 클린코드 : 엉클밥 책따라 작업 거인의 어깨위에 서기 : 기존 산업(거인)의 스탠다드를 잘 이용하라는 의미. 컨벤션이나 보일러플레이트 코드를 줄이는 방법이나 등등 기존에 많은 사람들이 논의해서 가장 좋은 답안을 제시한 것들을 내가 새롭게 할 필요가 없다는 의미(그것보다 잘할 자신 있으면 하고 아니면 스탠다드.. 2022. 3. 29.
Helper Class - 헬퍼 클래스 이번엔 Helper class(이하 헬퍼클래스) 에 대해 알아보겠다. 헬퍼클래스란..? 단어의 의미로 먼저 보자면 도움을 주는 클래스이다. 위키피디아를 살펴보면 https://en.wikipedia.org/wiki/Helper_class 개념이 그렇게 어렵지 않을 것이다. 객체지향 프로그래밍에서, 어떤 기능성을 도와주는데 보통 사용된다. 이 기능성이란 애플리케이션의 주 용도가 아닌 것. 즉, 메인 기능이 아닌 어떠한 기능을 지원해준다고 보면 된다. (뜬금 없지만, 헬퍼클래스의 인스턴스는 헬퍼 오브젝트라고 불린단다. ㅎㅎ) 유틸리티 클래스는 헬퍼 클래스의 특별한 경우 중 하나라고 한다. 뭐가 특별하냐고? 유틸리티 클래스는 모든 메소드가 정적 메소드 (Static method)라고 한다. 그렇단 얘기는, 헬.. 2020. 11. 13.
Transaction - 트랜잭션 이번 글에서는 Transaction (이하 트랜잭션) 이라는 것에 대해 말해보겠다. 본인도 트랜잭션을 알게 된지는 그리 오래되지 않았다. 그리고 그 필요성도 딱히 느끼지 못 했었다. 따라서, 혼자 개발 공부할 때에는 트랜잭션을 사용하지 않았다. 하지만 회사 프로젝트에서는 대부분 트랜잭션을 사용하고 있었다. 그래서 트랜잭션을 좀 더 관심있게 보게 됐다. 사실, 회사에서 쓸 프로젝트에 본인이 Stored Procedure를 개발할 일이 있었는데 이 때 트랜잭션을 쓰지 않고 개발했다가 혼이 났다 ㅎㅎㅎ 그래서 실수를 다시 하지 않기 위해 기록을 남기겠다. 여기선, 트랜잭션이란 무엇이며 왜 그리고 언제 사용하는가? 에 대해 다뤄보겠다. (트랜잭션의 역사나 유래나 이런 것은 잘 모른다. 이건 자료를 찾아봐야하는데.. 2020. 11. 13.
JOIN 문제 해결 앞서 살펴본 tables 간의 관계로 인한 Join 문제가 있었다. 1:N의 data가 생기면 어떤 data를 filtering해야 원하는 data가 나올까... 자! 이제 그 해결방법을 알아보자. 먼저 본인이 고민하고 고민해서 작성한 query는 아래와 같았다. SELECTSV.ServerName ,SV.ServerIP ,SV.AccountInfo = CASE WHEN EXISTS(SELECT * FROM dbo.ServersPermissions AS SVP INNER JOIN dbo.Users AS US ON (SVP.PermitTo = US.UserNo) WHERE SV.VMName = SVP.VMName AND US.PersonNo = @LoggedUser) THEN 'ID: ' + SV.Acco.. 2020. 11. 11.
문자+숫자 DB 컬럼 정렬하기 DB 컬럼을 정렬할 때 간혹 컬럼 data가 문자+숫자로 되어 있어서 정렬이 이상하게 될 때가 있다. 가령 아래와 같다. SELECT * FROM VirtualMachines; 이런 경우에는 SELECT * FROM VirtualMachines ORDER BY VMName; 이렇게 수행해도 같은 결과가 나온다. 숫자의 정렬방식은 1, 10, 2, 3, 4, 5, 50 ... 이런 식이기 때문이다. 그럼 어떻게 변경해야할까? SELECT * FROM VirtualMachines ORDER BY LEN(VMName), VMName; 이런식으로 변경해주면 된다. LEN 이란 문자열의 길이를 반환해주는 함수이다. (같이 알아두면 좋은 것은 DATALENGTH 함수이니, 찾아보길 바란다.) 문자열의 길이로 먼저 .. 2020. 11. 9.
JOIN 문제 오늘은 SQL을 다루면서 있었던 문제에 대해서 설명하면서, 어떻게 해결해나갈지 고민해보겠다. 아래 Table들이 있다고 하자. 상황은 아래와 같다. 1. 모든 Servers의 목록을 보여준다. 단, Login user가 각각의 Server에 접근권한(Permission)이 있는 경우에만 Server에 Login할 수 있는 ID와 PW를 볼 수 있다. (권한이 없으면 No permission 이라고 띄운다.) 2. ServersPermissions의 PK는 ServerName과 PermitTo를 합친 것이다. 3. 하나의 Server에는 여러 users가 권한(Permission)을 가질 수 있다. 즉, ServersPermissions Table에는 하나의 serverName과 여러 User가 매칭된다는.. 2020. 11. 5.
728x90