분류 전체보기 212

[디자인패턴] 전략패턴 (Strategy Pattern)

전략 패턴 간단한 예제 Class 구현부 namespace StrategyPattern { class Context { private IStrategy IStrategy; public Context() { } public Context(IStrategy strategy) { IStrategy = strategy; } public void SetValue(IStrategy strategy) { IStrategy = strategy; } public void DoSomething() { Console.WriteLine("context DoSomething()"); var test = IStrategy.algo(1); } } public interface IStrategy { object algo(int da..

프로그래밍 2024.01.03

[Linux] 우분투 `ll` 명령어를 찾을 수 없습니다.

ll 명령어 ll 명령어는 ls -al 명령어와 동일하다. ll 명령어를 입력했을 때, ls -al 명령어가 실행되도록 설정해주면 된다. 설정은 홈디렉터리의 .bashrc 파일에서 설정해준다. .bashrc의 내용엔 alias ll='ls -alF' 내용만 추가해주면 된다. 색상등과 같은 기타 내용등을 추가 하기위해서 아래 내용을 추가했다. * 추가 내용 보기 (클릭) * # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don..

Linux 2024.01.03

[레거시 코드 활용 전략] ch12. 클래스 의존 관계, 반드시 없애야할까?

https://gist.github.com/jonnyjava/42883d4e464167f81e2ee60a488a5ded https://namhoon.kim/2022/03/22/method-test/012/ 테스트 하려는 코드에 의존관계가 존재한다면, 테스트 코드 작성이 까다로워진다. 이때마다 의존 관계를 제거해줘야하는것인가? 무조건 제거는 답이 아니다. 테스트는 세부적인 코드를 매번 해줘야하는가? 어떤 코드를 테스트를 할 때, 상위 수준의 코드에서 테스트가 커버 된다면 할 필요는 없다. 교차지점 (Interception Point) 일반적으로 변경 지점에 가까운 지점 클래스의 변경이 발생하는 곳 public class Invoice { ... public Money GetValue() { Money to..

프로그래밍 2024.01.02

[TDD] 테스트 대역 (Test double)

테스트 대역 (Test Double) 정의 xUnit Test Patterns의 저자인 제라드 메스자로스(Gerard Meszaros)가 만든 용어로 테스트를 진행하기 어려운 경우 이를 대신해 테스트를 진행할 수 있도록 만들어주는 객체를 말한다. ex) DB로 부터 조회한 값을 연산하는 로직을 구현했다고 치자. 로직을 실행하기 위해선 항상 DB를 참조하기 때문에 DB상태에 따라서 결과가 달라질 수 있다. 종류 Fake Stub Mock Dummy Spy Test Double - None product code public class ControlCenter { private readonly Car car; public ControlCenter(Car car) { this.car = car; } publi..

프로그래밍 2023.12.13

공유 폴더 고급 설정 - 액세스 할 수 없는 경우 대처법

실무에서 서버 이중화 설정 시 공유 폴더를 설정하여 사용하는데, Active 서버 Standby 서버 역할이 변경될 때, 공유 폴더에 액세스 불가 현상이 있을 수 있습니다. 아래 내용을 참고하여 문제를 해결할수도 있습니다. 공유 폴더에 관한 마지막 시간입니다. 기본적으로 네트워크에 액세스 할 수 없는 경우는 권한 지정이 잘못되어서 나오는 경우가 대부분 입니다. 위에 공유 폴더 설정 방법에서 1번글과 3번글을 참고 하시면 거의 대부분 해결이 됩니다. 하지만 간혹 사용하다 보면 권한 설정도 제대로 되어있고 한데, 접속이 안되는 경우가 발생 할 수 있습니다. 그럴 땐 지푸라기라도 잡는 심정으로 좀 더 깊고 세세한 설정의 영역으로 들어가 봅시다. 제대로 공유 폴더 설정을 마쳤다면 이 글의 내용은 읽지 않아도 되..

Windows 2023.12.11

정규 표현식 변환 시 유용한 사이트

정규 표현식은 특정 패턴을 표현하는데 사용되며, 텍스트 처리, 검색, 추출, 치환 등 다양한 작업에 유용합니다. 정규 표현식(Regular Expression)을 작성하고 테스트하는 데 도움이 될만한 사이트입니다. 사용자가 정규 표현식을 만들고 테스트할 수 있는 편리한 환경을 제공합니다. 사이트를 방문하면 정규 표현식을 입력할 수 있는 창이 나타나며, 입력한 표현식이 문자열과 어떻게 매칭되는지 실시간으로 확인할 수 있습니다. 또한, 여러 옵션과 예제를 제공하여 사용자가 정규 표현식을 더욱 쉽게 이해하고 활용할 수 있도록 도와줍니다. 사이트 링크 : https://regexr.com/

프로그래밍 2023.11.17

[클린코드] 10,11장 정리

강결합 코드를 의존성 주입 기법(DI)을 사용하여 결합도를 낮춰보는 예제이다. CollectDataActor가 DeleteFileService에 의존성을 가지고 있다. 이로인해서 CollectDataActor클래스는 DeleteFileService클래스에 강하게 결합되어 있고, 테스트나 변경사항에 취약할 수 있다. public class CollectDataService { private readonly DeleteFileService _deleteFileService; public CollectDataService(...) { _deleteFileService = new DeleteFileService(); } public List CollectDatas(CollectRecipe collectRecip..

프로그래밍 2023.11.01