본문 바로가기

All74

[디자인 패턴] 전략 패턴 (Strategy Pattern) 우아한테크코스 BE 5기 과정 레벨 1의 자동차 경주 미션을 진행하며 전략 패턴을 학습할 기회가 있었다. 전략 패턴이란? 전략 패턴(strategy pattern)은 객체의 행위를 동적으로 바꾸고 싶은 경우, 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장할 수 있는 패턴이다. 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화하는 인터페이스를 정의함으로써 구현한다. 간단히 말하자면, 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고, 동적으로 행위의 수정이 필요한 경우 해당하는 전략으로 변경하여 행위의 수정이 가능하도록 만든 패턴이다. Strategy : 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명.. 2023. 2. 28.
[우아한테크코스 5기] 레벨 1 중간 회고 나의 글이 누군가의 길과 빛과 아픔과 증오가 되는 것에 화들짝 놀라서 붓을 꺾었고, 어느덧 두 번의 겨울을 보냈다. 감정 회고의 필요성에 대한 포비의 역설(力說)에도 망설였지만, 고뿔에 열이 올라서인지 감정이 살짝 삐져나와서 오래간만에 글 위로 마음을 담아본다. 나는 지금 즐겁고 두렵다. 우아한테크코스에 합류한 지 한 달여가 되어간다. 처음 자대 배치를 받은 날만큼이나 정신없는 나날들이 오래 이어졌다. 날마다 다양한 사람들을 마주하고 대화가 꽤 즐겁다. 겨우 레벨 1의 절반이 지났을 뿐인데, 무지막지한 일들과 감정들이 쏟아졌다. 이렇게 뒤흔들리면 결국 치장이 다 떨어질 터라 두렵다. 그런데, 우아한테크코스는 참 이상한 곳이다. 모나지 않기 위해 스스로를 갈아왔던 시간과 노력을 의아해한다. 왜 분칠을 하냐.. 2023. 2. 27.
Stream & Buffer Stream 스트림(Stream)이란, 실제의 입력이나 출력이 표현된 데이터의 이상적인 흐름을 이야기한다. 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다. Buffer 스트림은 내부에 버퍼(buffer)라는 임시 메모리 공간을 가지고 있다. 위의 그림에서처럼, 사용자의 입력이나 출력을 바로 처리하지 않고 버퍼에 모았다가 전송함으로써 입력과 출력을 효율적으로 처리한다. 버퍼는 임시 저장 공간, 즉 휘발성의 메모리이다. 스트림에서 사용되고 나면 내부의 데이터들은 휘발된다. 어떻게 경제성을 확보하는가 위의 도식은 버퍼를 사용하지 않는 입력을 처리하는 경우를 나타낸다. 파란색으로 그려져 있는 네모는 프로그램이 한 번에 처리할 수 있는 작업량을 의미한다. "MOVE.. 2023. 2. 26.
[우아한테크코스 5기] 최종테스트 회고(feat. 최종합격) 정말 오래 기다리던 메일을 받았다. 11/22에 4주차 미션을 제출하고, 약 3주를 매일매일 애가 끓는 심정으로 기다렸다. 졸업학기였지만 미뤄둔 학업을 마무리하느라 7개의 전공과목을 수강했기에 기말고사가 무려 5개였다... (기말 레포트도 2개...) 이에 더해서 졸업논문 심사와 제출도 있었고, SSAFY 면접도 준비해서 면접을 치르고, 그 새 코로나도 걸려서 고열로 고생도 할 정도로 오랜 기간이었다. 위에서 언급한 여러 일들을 해내면서도, 혹시나 하는 마음으로 주말마다 이전 기수의 최종 코딩 테스트 미션들을 5시간이라는 시간 제한을 두고 풀어왔다. 그렇기 때문에 더더욱 메일이 반가웠다. 주말마다 허튼 노력을 한 것이 아니구나 싶었다. 메일을 받고 3일간 기존에 했던 미션들을 다시 복습하고 새로 구현한 .. 2023. 2. 3.