본문 바로가기
728x90

개발 45

Jetbrains IDE를 사용한다면 알아둬야할 꿀팁 (MacOS) 코드 정렬 물론 IDE가 코드를 웬만해서는 잘 정렬시켜주지만, 간혹 쓰던 코드를 지우거나 정신없이 코드를 작성하다보면 indent나 space가 제대로 적용되지 않는 경험은 다들 해보셨을 겁니다. 이 때 사용할 수 있는 단축키가 cmd + opt + L 입니다. 미사용 imports 제거 이건 위 기능보다 더 유용합니다. 사용되지 않는 import들을 단축키 한방에 지울 수 있습니다. ctrl + opt + O 단축키 두번 누르는 거도 귀찮네.. 위 두개를 한번에 해결하는 방법 매번 단축키를 두번 누르는거도 귀찮죠? 그래서 한번에 위 기능을 다 해주는 방법도 있습니다. a. IDE 에서 환경설정을 켭니다. (cmd + ,) b. 검색창에 save 를 칩니다. 그럼 결과로 Actions on Save 라는.. 2024. 4. 8.
시니어 개발자처럼 함수를 만들어보자 미디엄에 좋은 글이 있어서 참고차 정리한다. 1. 하나의 기능만! 그리고 잘 만들어라! 2. switch문 같은 건 low level class(base class) 같은데에 넣고 다형성을 이용해서 반복사용을 줄여라. 3. 함수 arguments는 최소한으로! 4. flag arguments는 사용하지 마라! (true/false 에 따라서 다른 로직이 실행되는 것은 보기 안 좋다. 1번에서 언급한 것 처럼 하나의 기능만 하도록 함수를 만들고 그 상위에 flag로 각각 실행되도록) 5. object를 arguments로 넘기자. (3번과 겹침. 가능하면 object로 담아서 arguments를 최소화) 6. error code보다는 exception 발생을 사용해라.(에러코드를 반환하기보다는 바로 exc.. 2022. 4. 4.
개발 원칙 피라미드 미디엄에서 글을 읽다가 개발 원칙 관련 좋은 글이 있어서 간단하게 해석한 것을 공유해본다. 원문은 여기서 확인 간단히 설명하면 아래와 같다. 작동하게 하기 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.
728x90