[개발 일기] 2025.06.14 - 단위 테스트 → 통합 테스트
·
개발 일기
💡 개요 오늘도 어김없이 내일 있을 시험을 준비중이다. (그렇기 때문에 간단하게 정리할께요..) 그 중에서 테스트 관련 자료를 봤는데 단위 테스트, 통합 테스트, 시스템 테스트를 보고 궁금증이 생겼다. 그것은 바로 “통합 테스트는 어떻게 하는 것 인가..!” 이다. 🛠️ 단위 테스트는 알겠어요.. 단위 테스트(== 유닛 테스트)는 매우 간단하다. 각 기능(메서드)에 대한 테스트 코드를 작성하는 것이다. 다음은 게시글을 작성을 성공하는 메서드의 단위 테스트 예시 코드이다. @Testvoid 게시글_작성_성공() { // given PostService postService = new PostService(); String title = "테스트 제목"; String co..
[개발 일기] 2025.06.13 - 도시락 먼저 데우기
·
개발 일기
💡 개요 오늘은 오랜만에 알고리즘과 관련된 주제를 가져왔다. 그 이름 하여 도시락 먼저 데우기..! 🛠️ 도시락 먼저 데우기 일단 도시락 먼저 데우기가 의미하는 건 편의점 도시락을 데운 후에, 먹는데 오래 걸리는 도시락일수록 먼저 데워야 한다는 것이다. 당연하다고 생각할 수 있다. 하지만 전 몰랐어요.. 예시를 들어보자. 편의점에 N개의 도시락이 있고, 각 도시락의 정보는 다음과 같이 주어진다. 데우는 시간먹는 시간 이 도시락들을 하나씩만 데울 수 있는 전자레인지에 넣어서 데우고, 동시에 한 사람만 먹을 수 있다는 가정 아래, 모든 도시락을 다 먹는 데 걸리는 총 시간을 최소화하려면 어떤 순서로 데워야 할까? 정답은 먹는데 오래 걸리는 것을 먼저 데워야하는 것이다. 이유는 다음과 같다..
[개발 일기] 2025.06.12 - IPv4 vs IPv6
·
개발 일기
💡 개요 오늘도 역시나 주말에 있을 시험을 준비 중이다.. 맨날 정처기 공부할 때 마다 봤었던 IPv4와 IPv6는 볼 때 마다 헷갈린다.. 몇 비트의 주소를 표현할 수 있는지, 사용되는 기술은 무엇인지 등등.. 오늘 한번 제대로 정리해 보자. 🛠️ IPv4 (Internet Protocol version 4) IPv4는 현재 가장 널리 사용되는 IP 프로토콜이다. 32비트 주소(8비트 × 4)를 사용하며, 이를 8비트씩 4개의 옥텟으로 나누어 점(.)으로 구분된 10진수 형태로 표현한다. (192.168.0.1) 헤더는 가변 길이이며, 기본 20바이트에서 최대 60바이트까지 확장 가능하다. IPsec(보안 기능)은 기본이 아닌 선택 사항으로, 필요 시 별도로 구성해야 한다. 🛠️..
[개발 일기] 2025.06.11 - CSMA/CA vs CSMA/CD
·
개발 일기
💡 개요 요즘 주말에 있을 시험을 준비중이다.. 그래서 전공 과목을 훑어보고 있는데, CSMA/CA, CSMA/CD는 뭐랄까 단골문제인 것 같아서 따로 정리해 보자. 🛠️ CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance) Wifi같은 무선 LAN에서 데이터를 보낼 때 사용하는 방식이다. 데이터를 보내기 전에 매체가 사용 중인지 먼저 확인하고, 비어있다면 바로 보내지 않고 임의의 짧은 시간(BackOff Time) 동안 기다린 후 데이터를 전송한다.→ 여기서 비어있다는 의미는 무선 채널(전송 매체)이 현재 다른 장치에 의해 데이터를 전송하는 데 사용되고 있지 않다는 것을 의미한다. 이렇게 하는 이유는 여러 장치가 동시에 데이터를 보내려 ..
[개발 일기] 2025.06.10 - 파사드 패턴
·
개발 일기
💡 개요 오늘은 자바의 파사드 패턴에 대해 정리해 보자. 🛠️ 파사드 패턴 파사드 패턴은 복잡한 하위 객체(주로 구현체)를 하나의 인터페이스로 감싸서 개발자가 더 쉽게 기능을 사용할 수 있게 해주는 디자인 패턴이다. 말만 들으면 어려우니까 아래 예시 코드를 보자. ⚙️ Computer 클래스에서 사용해야 할 서브 클래스 class CPU { public void freeze() { System.out.println("CPU freezing..."); } public void jump(long position) { System.out.println("CPU jumping to: " + position); } public void execute..
[개발 일기] 2025.06.09 - 격리 수준
·
개발 일기
💡 개요 오늘은 동시성 제어에 사용되는 격리 수준에 대해 다시 정리해 보자.. (사실 예전에 정리했는데 약간 가물가물해서..) 🛠️ 격리 수준 격리 수준이란 하나의 DB을 여러 트랜잭션이 접근할 때, 특정 트랜잭션이 다른 트랜잭션에서 변경 작업이나 조회 작업을 수행할 때, 데이터에 접근할 수 있게 허용할지 말지를 결정하는 것이다. 다음은 격리 수준이 높은 순서대로 나열한 것이다. ⚙️ SERIALIZABLE 모든 트랜잭션은 작업중인 데이터에 접근할 수 없다. 그렇기 때문에 가장 안전한 방식이지만, 그만큼 동시성이 떨어지기 때문에 성능 측면에선 가장 불리하다. 🔥 이상 현상 ❌ Dirty Read❌ Non-repeatable Read❌ Phantom Read ⚙️ REPEATABLE ..