개발자가 내팔자

[WIL] ruby on rails로 기술 과제하기 본문

STUDY

[WIL] ruby on rails로 기술 과제하기

야생의 개발자 2022. 8. 14. 22:11

이번 주는 어떤 기업에서 기술 과제를 받아 새로운 언어와 프레임워크로 요구사항을 만족하는 API을 만드느라 정신이 없다.

조금 있으면 마감일이라 시간이 좀 빠듯해서 다 끝나고 회고를 하려고 했는데, 누가 블로그를 쓰라고 시켜서 꾸역꾸역 쓰는 중이다.

그냥 기능만 만들고 끝내면 심심할 것 같기도 하고, 새로운 언어를 학습하면서 해야하기 때문에

평소에 적용해보고 싶었던 것들을 시도해보면서 적응해나가고 있다.

TDD 커버리지 100% 달성

지금은 코드를 추가해서 조금 떨어졌다. 다시 올릴 예정

TDD를 기반으로 개발을 하니까 오히려 금방 익숙해지고 있는 것 같다.

물론 몇 개 안되는 API에 비해 테스트 코드 양이 방대해서 효율적으로 빠르게 뽑아내고 있지는 못하지만

어차피 새로운 프레임워크에 익숙해지기 위해서는 어쩔 수 없는 것 같다.

TDD를 하게 되면 테스트 하기 쉽도록 코드를 작게 분리하게 되는 것 같다.

factory 패턴을 이용해서 재사용이 쉬운 함수들을 만들어 테스트도 쉽게 짤 수 있도록 만들었다.

Ruby와 Python

나는 이전 회사에서 Python으로 Django를 써본 경험이 있다.

일단 둘의 철학이 너무 비슷한데, 문법적인 측면에서는 몇 가지 차이가 있어서 이런 부분은 계속 연습하면서 익혀야 할 것 같다.

프레임워크가 주는 안정성과 편리함을 잘만 이용하면 굉장히 편하고 좋은 것 같다.

Java Spring과의 비교

루비나 파이썬을 쓰다가 자바를 쓰면 왜.. 이렇게 까지? 라는 생각이 든다.

실제로 Java로 알고리즘 문제를 풀라고 시켜서 일단 파이썬으로 짜고 Java로 바꿨는데 코드가 두배로 길어졌다.

JVM은 어떤 환경에서든 실행할 수 있게 해주는 가상 환경이다. 이게 자바의 유일한 장점이었던 것 같은데

요즘 다른 스크립트 언어들도 다 여러 환경에서 실행할 수 있고, Docker도 잘 되어 있어서 크게 장점으로 느껴지진 않는다.

Java만의 장점이 뭘까? 생태계?

OOP(Object Orientaion Programming), 객체지향 프로그래밍

객체지향적인 프로그래밍을 한다는 것은 생각보다 쉽지 않다.

객체는 각자의 책임과 역할이 있고, 메시지를 통해 소통을 한다. 마치 살아있는 것처럼.

이는 현실세계의 문제를 코드에 녹여내기 위한 시도였기 때문에 어쩌면 당연한 것 같다.

객체지향의 가장 큰 특징은 캡슐화, 다형성, 상속, 추상화 등이 있는데

이건 공부해보면 책에 다 나오는 내용이니 굳이 여기에 쓰진 않겠다.

객체 지향 설계의 주요 원칙을 SOLID라고 하는데, 처음엔 별다줄이라고 거부감이 들었지만

실무에서 코드를 짜면서 생각보다 이 원칙을 많이 떠올리게 되는 것 같다.

 

과제들이 마구 쏟아지고 있고, 스터디도 있고 사이드 프로젝트도 있어서 좀 정신이 없는데

틈이 나면 객체지향에 대해서는 좀 더 심도있게 공부할 생각이다.

사실 읽고 있던 책을 마저 읽는 것 부터 하고 싶은데 여기다 적어놓고 나중에 다시 봐야겠다.

 

읽던 책들

http://www.yes24.com/Product/Goods/18249021

 

객체지향의 사실과 오해 - YES24

『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장

www.yes24.com

 

 

http://www.yes24.com/Product/Goods/11681152

 

Clean Code 클린 코드 - YES24

애자일 소프트웨어의 혁명적인 패러다임을 제시하는 책이다. 저자 로버트 마틴은 오브젝트 멘토(Object Mentor)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 정제

www.yes24.com

http://www.yes24.com/Product/Goods/77283734

 

클린 아키텍처 - YES24

살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙『클린 코드』와 『클린 코더』의 저자이자 전설적인 소프트웨어 장인인 로버트 C. 마틴은 이 책 『클린 아키텍처』에서 이러한

www.yes24.com

 

사놓고 안 본 책

http://www.yes24.com/Product/Goods/74219491

 

오브젝트 - YES24

역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를

www.yes24.com

http://www.yes24.com/Product/Goods/108192370

 

헤드 퍼스트 디자인 패턴 - YES24

유지관리가 편리한 객체지향 소프트웨어 만들기!“『헤드 퍼스트 디자인 패턴(개정판)』 한 권이면 충분하다.이유 1. 흥미로운 이야기와 재치 넘치는 구성이 담긴 〈헤드 퍼스트〉 시리즈! 하나

www.yes24.com

 

그리고 보고 싶은 책

http://www.yes24.com/Product/Goods/16886031

 

클린 코드를 위한 테스트 주도 개발 - YES24

이 책은 웹 애플리케이션의 개발 과정 전반을 다룬다. 또한 애플리케이션을 구축하기에 앞서 어떻게 테스트 코드를 작성하고 실행해야 할지를 알려주고, 테스트 코드를 통과하기 위한 최소 기

www.yes24.com

 

Comments