본문 바로가기

소프트웨어 개발5

자바를 시작하게 된 계기, 자바 기초 어떻게 더 좋은 코드를 작성할 수 있을까? 현업에서 1년 남짓 개발을 했던것 같다. 그동안 배운 것이 있다면 속도다. 일정의 압박 속에서 빠르게 원하는 기능을 구현하고 이슈를 처리하는 능력이다. 그런데 빠르게 하다보면 놓치게 되는 것이 많다. 코드가 당장 문제없이 동작하고는 있지만 유지보수, 확장성, 재사용성, 우아함(?) 이런 측면에서는 불안하고 아쉽다. 어떻게 하면 더 좋은 코드를 작성할 수 있을까? 어떻게 디버깅을 더 효율적으로 할 수 있을까? 이 문제를 해결하기 위해 가장 좋은 접근방식은 무엇인가? 빠르게 일을 쳐 내면서도 이런 고민은 뗄수도 없고 늘 마주하게 되는 혹처럼 달고 사는 것 같다. 이러한 질문은 속도와는 반대로 묵직한 시간과 내공이 필요하다. 컴공과에 다시 진학할 수는 없으니 내 전문.. 2022. 8. 5.
큐/스택 알고리즘 문제 with JavaScript 큐(Queue) 데이터 구조 아래는 add, remove, peek 메서드를 포함하는 큐 클래스다 class Queue { constructor() { this.data = [] } add(record) { this.data.unshift(record) } remove() { return this.data.pop() } peek() { return this.data[this.data.length - 1] } } 큐 Weave 두 개의 큐를 교차로 결합하여 새로운 큐를 반환하기 위에서 만든 큐 클래스를 사용해야 한다 function weave(sourceOne, sourceTwo) { const q = new Queue() while (sourceOne.peek() || sourceTwo.peek()) {.. 2021. 3. 7.
알고리즘 문제 with JavaScript FizBuzz 1부터 n까지 출력하는 프로그램. 3의 배수는 fizz, 5의 배수는 buzz, 15의 배수는 fizzbuzz를 출력. # modulo % operator function fizzBuzz(n) { for (let i = 1; i 2021. 2. 28.
Array 알고리즘 문제 with JavaScript Array Chunk array를 주어진 chunk 크기로 나누기 chunk([1, 2, 3, 4, 5], 2) --> [[ 1, 2], [3, 4], [5]] # slice function chunk(array, size) { let chucked = [] for (i = 0; i 2021. 2. 28.