목록전체 글 (28)
쨍쨍
spring boot 와 react 를 사용하면서 가장 궁금했던 점이 있다.왜 컴포넌트랑 css를 같이 쓰는걸 권장하는가? 그 이유는 웹 페이지를 바라보는 단위가 달라졌기 때문입니다.과거에는 기술을 기준으로 분리를 했다면, 현재 react 에서는 기능을 기준으로 응집하는 것을 권장한다.그 이유는 다음과 같다. 1. 웹을 바라보는 단위의 변화 : 컴포넌트 중심과거웹페이지 중심으로 HTMl은 구조, CSS는 스타일, JS는 동작으로 나누어서 관리를 했다.페이지 전체의 스타일을 한번에 바꿀 때는 기능을 기준으로 분리되어있기 때문에 편했지만, 프로젝트가 커지고 파일이 많아지면 특정 버튼 하나를 수정하기 위해 수천 줄 짜리 CSS 파일에서 해당 클래스를 찾아야 했다. 현재react는 UI를 독립적이고 재사용 가..
상황오늘은 처음으로 회사에서 코드를 직접 작성해보았다. 아직 본격적인 개발 단계는 아니지만, 개발 예정일이 여러 사정으로 미뤄지면서 대리님께서 연습 삼아 신고 DB를 CRUD 할 수 있는 기능을 만들어보라고 하셨다. (이 지연은 우리 팀의 문제는 아니다.)이미 프로젝트 파일 안에 다른 기능을 CRUD 하는 게시판 샘플 코드가 있었기 때문에, 그 구조를 참고하며 신고 기능을 구현해보았다. 처음부터 새로 만드는 것이 아니라, 기존 실무 코드의 흐름을 따라가며 만들어보는 방식으로 진행하였다. 코드를 작성해보며 배운 점들 내가 해본 작업 흐름 정리신고 목록을 DB와 연결해 조회하는 기능을 만들면서, 전체 흐름을 다시 한 번 정리하게 되었다.1. VO(DTO) 생성DB 테이블 구조에 맞춰 데이터를 담을 객체를..
상황프로젝트에 투입된 이후, 본격적인 개발에 들어가기 전까지는 공유 폴더에 있는 문서들을 살펴보며 프로젝트 전반을 파악하는 시간을 가졌다. 오늘은 프로세스 정의서, 개발 표준 가이드, 각종 산출물 문서를 하나씩 읽어보았다. 문서를 읽다 보니 처음 보는 용어들과 익숙하지 않은 축약어들이 계속해서 등장했다.CD, CR, SUR 같은 약어들이 문서와 코드 전반에 자연스럽게 사용되고 있었지만, 정확한 의미를 알지 못한 채로 읽다 보니 흐름이 자주 끊겼다. 혼자 문서를 보며 이해하려다 보니 한계를 느끼고 있던 중, 대리님께서 “문서만 보는 것보다 코드를 직접 보고 쳐보는 게 이해하는 데 더 도움이 될 거예요.” 라고 말씀해주셨다.그 말을 듣고 프로젝트 파일을 열어 코드 구조를 하나씩 살펴보기 시작했다. 하지만 코..
상황프로젝트에 투입된 지 얼마 되지 않아, 아직 본격적으로 개발을 시작한 상태는 아니지만 드디어 내가 맡게 될 역할이 정해졌다.내가 맡은 영역은 대시보드였다. 대시보드에서 구현해야 할 기능들은 아직 모두 정해지지 않았고, 화면 설계서 역시 완전히 나온 상태는 아니었다. 다만, 대시보드의 구성 요소 중 하나로 5개의 값을 기반으로 한 빅스파이브(오각형 차트)를 그려야 한다는 점만 공유받은 상황이었다. 아직 실제 구현에 들어가지는 않았지만, “빅스파이브를 그려야 한다”는 말을 듣고 나니 스프링 + 타임리프 환경에서 이런 형태의 차트를 어떤 방식으로 구현할 수 있는지를 미리 알아둘 필요가 있다고 느꼈다. 그래서 당장 코드를 작성하기보다는,차트를 어떻게 그릴 수 있을지 방법을 찾아보며 흐름 위주로 정리하기 시작..
상황입사 후 바로 개발을 시작하는 줄 알았지만, 실제로는 프로젝트 제안서를 읽으며 전체 흐름을 파악하는 시간이 먼저 주어졌다.제안서를 읽다 보니 단축어와 개념적인 용어가 너무 많았고, 아직 익숙하지 않은 용어들 때문에 내용을 한 번에 이해하기가 쉽지 않았다. ‘이건 나중에 하면서 알게 되겠지’라고 넘기기보다는, 지금 따로 공부할 시간이 필요하겠다는 생각이 들었다.어제와 마찬가지로 실무 용어를 익혀야 하는 상황이었고, 실무 용어라고 부르기엔 애매한 것들도 있었지만 어쨌든 지금의 나는 모르는 것이 훨씬 많다는 사실을 다시 느끼게 되었다. 한편으로는 혼자 게시판 프로젝트를 만들어보려 했는데, 막상 시작하려니 “기능 구현 이전에 프로젝트를 어떻게 만드는지부터 헷갈리고 있다”는 점도 깨닫게 되었다. 배운 점 ..
프로젝트 투입 1일차 회고록 : “해봤다”와 “알고있다”의 차이를 느낀 날 상황프로젝트에 처음 투입된 첫날, 가장 먼저 한 일은 개발에 필요한 툴을 다운로드하고 환경을 세팅하는 것이었다.전공 수업이나 학원에서는 항상 공식 홈페이지에 접속해 하나씩 직접 다운로드하는 방식에 익숙했기 때문에, 실무에서도 자연스럽게 같은 과정을 떠올리고 있었다. 하지만 실제 프로젝트에서는 사수분들께서 공유해주신 폴더를 통해 이미 준비된 실행 파일을 내려받아 사용하는 방식이었다.이런 경험이 처음이다 보니, 파일이 제대로 설치된 것인지조차 확신이 들지 않았고, 작은 부분부터 혼란을 겪으며 하루를 시작하게 되었다. 환경 세팅 이후에는 프로젝트에서 사용하는 도구와 개념들에 대한 설명을 듣게 되었다.형상관리, SVN, Tomcat, ..
스프링 + 타임리프 구조에 대해 공부하게 된 계기곧 입사 후 첫 프로젝트에 투입될 예정이다.곧 투입될 업무에서 스프링 + 타임리프와 전자정부프레임워크를 사용하는데이전 '반려온'프로젝트에서 사용했던 JSP는 서블릿 컨테이너에 의존성이 높고, 템플릿 구조가 자연스럽지 않아서 브라우저에서 바로 확인이 불가능하다. 하지만 타임리프는 서블릿 컨테이너의 의존성을 최소화했으며, 확장자가 HTML로 되어있어 브라우저에서 바로 확인이 가능하기 때문에 스프링(과 스프링 부트)에서 JSP보다 타임리프를 더 권장한다.이에 따라서 타임리프에 대한 개념을 공부한다. 타임리프 이론 템플릿 엔진스프링 서버에서 받은 데이터를 Html 화면에 채워 넣어주는 도구이다.스프링 서버에서 게시글 목록, 사용자 정보 같은 데이터를 처리하지만..
윈도우&우분투 듀얼부팅을 설치하게 된 계기회사에서 노트북을 포맷하고 윈도우 + 우분투 듀얼부팅 환경을 새로 구성하는 작업을 처음 진행하게 되었다.처음 해보는 작업이라 파티션, BIOS 설정 등에서 많이 헷갈렸고, 같은 실수를 반복하지 않기 위해 과정을 정리해 둔다. 듀얼 부팅이란?한 대의 컴퓨터에 2개 이상의 운영체제를 설치하여 부팅 시 선택하여 실행하는 방식을 말한다.내가 한 것은 하나의 컴퓨터에서 윈도우와 우분투 2개를 설치해서 필요에 따라 운영체제를 선택해 사용할 수 있다. 우분투란?우분투는 리눅스 기반의 오픈소스 운영체제로, 데스크톱, 서버, 클라우드 환경 등 다양한 분야에서 사용된다. 우분투의 장점초보자도 비교적 쉽게 사용할 수 있도록 직관적인 UI와 풍부한 커뮤니티 문서를 제공개발 환경 구축이..
[ Cctv 화면 ] [ activity_cctv.xml ] [ CctvActivity.java ] import android.Manifest;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.media.ExifInterface;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr..
[ Mode 화면 및 기능 ] [ activity_mode.xml ] [ ModeActivity.java ] import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.Toast;import androidx.appcompat.app.AlertDialog;import androidx.appcompat.app.AppCompatActivity;import okhttp3.Call;import okhttp3.Callbac..