오늘한 일
- 세붕이 웹사이트 프로젝트를 진행하였다
- 알고리즘 문제를 풀었다
- 블로그 TIL을 작성하였다
- 1일 1커밋을 하였다
느낌 점
세붕이 웹을 만들 때 확장이나 기능 추가를 고려하지 않고 개발하다가 형에게 확장을 고려하지 않고 이렇게 짠다면 해가 바뀔 때마다 계속해서 페이지를 추가하고 UI를 바꿔야 한다고 소리를 들어서 한번 알아봤는데 일리가 있는 말이라 내일은 코드를 뒤 바꿔야겠다
배운 점
확장을 고려해서 설계
프로그래밍을 할 때 확장을 고려해서 설계해야 하는 이유는 앞으로 소프트웨어가 더 많은 기능을 추가하거나 수정될 가능성이 있기 때문이다 만약 고려하지 않고 개발했을 때 이러한 상황에서 기존 코드를 수정하거나 변경하면서 새로운 기능을 추가하면 기존 코드가 예상치 못한 방식으로 작동할 가능성이 크다
예를 들어 처음에는 단순한 계산기 앱을 만들었다고 했을 때 이후에 계산 결과를 저장하고 공유하는 기능을 추가하려고 한다면 초기 버전에서는 계산 결과를 저장하고 공유하는 기능이 없으므로 기존 코드를 수정해야 하는데 기존 코드가 잘못된 방식으로 작동할 가능성이 크고 수정된 코드가 기존 기능을 영향을 주지 않아야 하기에 이러한 문제를 해결하려면 처음부터 소프트웨어를 확장 가능한 방식으로 설계해야 한다
이렇게 하는 것은 초기에는 추가적인 시간과 비용이 들어갈 수 있지만 앞으로 더 효율적으로 유지보수하고 확장할 수 있기에 확장을 고려해서 설계해야 한다
CSS Flexbox
Flexbox는 요소의 크기가 불분명하거나 동적인 경우 요소들을 수평 또는 수직 방향으로 유연하게 배치할 수 있도록 해주는 기능으로 Flexbox를 사용하면 요소들을 정렬하거나 간격을 조절하는 등의 작업을 보다 쉽게 할 수 있다
Flexbox에 사용법으로는 부모 요소에 display: flex 속성을 지정하고 자식 요소들에 대한 정렬 방식을 설정할 수 있는 justify-content 속성이나 align-items등 다양한 속성을 사용한다
Flexbox는 모바일 디바이스에서의 반응형 디자인이나 레이아웃을 간편하게 구성하는 데 유용하게 사용할 수 있다
내일 계획
세붕이 웹 사이트 프로젝트를 진행해야겠다