분류 전체보기 19

[우테코 8기] 4-6주차 : 장기 과제 (사이클 1, 2, 연장)

0. 과제 소개이번주의 과제는 장기 미션이었다. 사이클 1, 2로 끝날 일정이었지만, 대다수가 2주안에 끝나지 않아서 필수 미션 연장을 선택해 3주 동안 진행됐다. 1) 장기 과제 사이클 12) 장기 과제 사이클 23) 장기 과제 사이클 연장 미션 1.1 장기 과제1) 과제 이해하기 이번 과제의 주제는 장기 - OOP, 영속화였다. 앞에 미션인 블랙잭 때보다 기능 요구사항도 복잡해지고, DB를 연동하는 과제도 추가되었다. 지난주와 마찬가지 순서로 진행된다.(사전 학습 → 토론 조와 규칙 정하기 → 페어 프로그래밍 (사이클 1) → 리뷰 받기 → 개인 구현(사이클2) → 리뷰 받기) 1.2 사이클 1 : OOPOOP - 불변과 캡슐화, 다형성(인터페이스, 추상 클래스) 1.1단계 - 보드 초기화 : 처..

우테코 2026.05.11

[우테코 8기] 3주차 : 선택 미션 & 공통 교육

0. 과제 소개이번주는 블랙잭 미션이 끝나고, 선택 미션을 골라서 수행하는 기간이다. 1) 선택 미션 ("불편함에서 기능 이끌어내기")2) 소프트웨어 공통 교육 - 웹1. 선택 미션이번 주차는 선택 미션을 골라서 수업을 진행한다. 나는 "불편함에서 기능 이끌어내기"를 선택했다.온보딩 미션인 "제미나이로 웹앱 만들기"에서 만든 웹앱을 디벨롭하는 미션이었다.이 미션의 핵심은 기능 구현 자체가 아니라, "왜 이 기능인가"에 답하는 과정입니다. 기술적 완성도보다 발견 → 정의 → 설계 → 구현의 연결이 중요하며, "이런 기능이 있으면 좋겠다"는 아이디어가 아니라 관찰에서 출발한 근거가 있어야 합니다. 1) 발견불편한 점을 발견하기 위해 조원들과 바꿔가며 서비스를 사용해보았다.나는 기능을 만들면서 익숙했는데, ..

우테코 2026.04.01

[우테코 8기] 2주차 : 블랙잭 과제 (사이클 2)

0. 과제 소개이번주는 지난주에 했던 블랙잭 과제의 두번째 사이클을 했다.1) 블랙잭 과제 사이클 21.1 블랙잭 과제1) 과제 이해하기지난주의 사이클 1에 이어서 이번 주차에는 사이클 2를 진행했다.전체적인 흐름은 사이클 1과 유사하지만, 페어 프로그래밍 대신 바로 개인 구현이 들어간다.(사전 학습 → 토론 조와 규칙 정하기 → 개인 구현 → 리뷰 받기) 2) 사전 학습사이클 2에서는 배팅기능이 추가되었다. 사전학습에서는 코드를 구현하지 않고, 배팅 기능을 추가하려면 어떤 수정이 필요할지 생각해보는 시간이다. 3) 토론 조와 규칙 정하기사전학습했던 내용을 공유하고, 사이클 1에서 있었던 경험들을 공유하며 다시 규칙을 수정하는 시간을 갖는다.이 시간에 다른 크루의 생각을 알 수 있어서 도움이 많이 되었다..

우테코 2026.03.29

[우테코 8기] 1주차 : 연극 시연 & 블랙잭 과제

0. 과제 소개이번주 과제는 세 가지였다.1) 연극 시연2) "유연함의 힘" 책 읽기2) 블랙잭 과제 1. 연극 시연 1) 연극 준비지난 주 연극 조 끼리 4~5분 정도의 연극을 준비하라는 공지를 받았다. 우리는 "맥북병 걸린 INTP 머리속에는 4명이 산다"를 주제로 인사이드 아웃 컨셉의 연극을 준비했다. 2) 연극 피드백연극 무대를 하기 전 피드백을 받고 개선시키는 과정이 꼭 필요할 거라고 생각했다. 그래서 전주 금요일에 층이 다른 두 팀을 섭외해서 서로 연극 무대 피드백을 주고 받자고 제안했다. 받은 피드백1. 누가 누군지 구분이 안가서 이름표 같은게 있으면 좋을 것 같다.2. 각 캐릭터 별로 좀 더 특징이 드러나게 표현하고, 그에 맞는 동작을 추가하면 더 풍부해질 것 같다.3. 본인의 차례가 ..

우테코 2026.03.09

[우테코 8기] 온보딩 미션 : 제미나이 Canvas로 웹앱 만들기

0. 과제 소개 첫번째 온보딩 미션은 제미나이 canvas로 웹앱 만들기이다. 웹앱 (개인 3개 + 페어프로그래밍 1개)를 만드는 것이 목표였다. https://gemini.google/kr/overview/canvas/?hl=ko Gemini Canvas - 하나의 공간에서 AI를 활용한 글쓰기, 코딩, 창작Deep Research 보고서를 앱, 게임, 대화형 퀴즈, 웹페이지, 인포그래픽으로 변환하여 학습하고 탐색하며 인사이트를 공유하는 방식을 혁신하세요.gemini.google 온보딩 과정은 아래의 순서로 진행되었다. 개인 + 페어로 웹앱 만들기 → 각 조에서 피드백 하기 → 피드백 토대로 개선하기 → 옆 조와 switch해서 피드백 하기 → 최종 회고 💻 1. 유틸리티 앱 - 앱 이름Woowa ..

우테코 2026.03.02

[우테코 8기] 최종 코딩 테스트 준비 과정 & 최종 합격 후기

오픈미션 끝난 후 오픈 미션을 제출하고 나서 합격자 발표까지 한달 가량의 시간이 있었다. 결과가 아직 안나왔지만, 스터디 하던 사람들과 오픈미션이 끝난 주부터 계속해서 스터디를 이어나가기로 했다. 사실 오픈미션에서 진짜 모든걸 쏟았기 때문에, 합격하겠지라는 어느정도의 자신감이 있었다. (거의 밤을 다 새서 했어서,,🥹) https://github.com/woowa-precourse-study 우테코 8기 백엔드 스터디우테코 8기 백엔드 지원을 준비하는 스터디 공간입니다. 우테코 8기 백엔드 스터디 has 15 repositories available. Follow their code on GitHub.github.com(스터디장님이 모두 정리해두신 자료이다. 감사합니다..!) 평일에는 각자 해당 기수 ..

우테코 2026.01.23

[CS] 동기화 문제: 똑같이 더하고 뺐는데 왜 sharedData는 0이 안 나올까? (Mutex, Semaphore)

동기화란?: 두 가지 이상의 작업이 동시에 실행될 때 꼬이지 않도록 맞추는 것 여러 개의 작업(스레드/프로세스)이 동시에 실행될 때, 데이터의 일관성을 유지하고 충돌을 막기 위해 실행 순서나 접근을 제어하는 것을 말한다. 즉, 동기화에서 실행 순서와 공유자원 접근은 중요한 문제이다. 1. 실행 순서 문제 (순서 동기화)“A가 끝난 뒤에 B를 실행해야 한다”예:Producer → Consumer초기화 후 사용2. 공유 자원 접근 문제 (임계구역(critical section) 문제)“여러 명이 동시에 만지면 안 된다”예:sharedData++파일 쓰기캐시 수정 아래와 같이 2개의 스레드를 동시에 작동시켜보자.public class Race { static int sharedData = 0; pu..

CS 2025.12.26

[CS] JAVA 싱글톤 패턴과 Spring 싱글톤의 차이, 그리고 thread-safe 오해

싱글톤 패턴이란?오직 하나의 인스턴스만 생성되도록 보장하고,그 인스턴스에 전역적으로 접근할 수 있도록 하는 패턴이다.public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; }} private으로 생성자 접근을 막고, 정적 메소드 팩토리로 만들면 그게 싱글톤인가요? 🙋🏻‍♀️ (모양이 비슷해서..) NO ❌싱글톤은 항상 같은 인스턴스를 반환한다. 싱글톤 패턴은 아래의 2가지를 지켜야한다.생성자를 외부에서 못 부르게 한다 (privat..

CS 2025.12.17

[CS] 왜 HTTP 통신에는 직렬화가 필요할까? JSON과 Spring MVC로 이해하는 직렬화와 역직렬화

직렬화란? 객체, 해시, 딕셔너리 등을 문자/바이트 형식으로 만드는 것이다. 반대로, 역직렬화란?문자/바이트 형식을 프로그램이 사용하는 객체로 바꾸는 것을 말한다. 왜 직렬화/역직렬화가 필요한가요? 🤷🏻‍♀️ 네트워크 전송(HTTP), 파일 저장, 로그 기록 등은 바이트 형식만 가능하기 때문이다. 객체는 메모리 주소와 구조를 가진 덩어리다. 이런 정보들은 모든 사용자 개인의 컴퓨터 환경의 영향을 받는다. 만약, JVM을 사용하지 않는 사용자에게 Java 객체를 전송한다면? 정상적으로 데이터 송수신이 어려울 것이다. 그래서 문자열/바이트 형식으로 데이터를 전송한다. *문자열 : 바이트 스트림을 문자 인코딩 규칙(UTF-8, UTF-16 등) 으로 해석한 것이다. (즉, 바이트 스트림 ⊃ 문자열 스트림이..

CS 2025.12.12

[Spring] 공통 응답/에러 처리 설계: CustomResponse와 ErrorCode로 일관된 API 만들기

1. 파일명2. 코드1) BaseCode성공/실패 시 공통적으로 지켜야할 응답 형식 인터페이스이다.// global/BaseCode.javapackage com.ZzicGo.global;import org.springframework.http.HttpStatus;public interface BaseCode { HttpStatus getHttpStatus(); String getCode(); String getMessage();} 2) GeneralSuccessCode애플리케이션 전역에서 사용할 성공 응답을 정의한 ENUM 클래스이다.// global/CustomResponse.javapackage com.ZzicGo.global;import lombok.AllArgsConstructo..

스프링 2025.11.14