분류 전체보기

개발 기록/JAVA

[Spring] 스프링 컨테이너의 생성 | ApplicationContext

스프링 컨테이너와 ApplicationContext // 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라고 한다. ApplicationContext는 인터페이스다. (위 코드에서 AnnotationConfigApplicationContext는 ApplicationContext의 구현체인 것이다.) 스프링 컨테이너는 XML을 기반으로 만들 수도 있고, 애노테이션 기반의 자바 설정 클래스로도 만들 수 있다. 위 코드가 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 참고) 더 정확히는 스프..

개발 기록/JAVA

객체 지향 설계의 5원칙 SOLID | SRP, OCP, LSP, ISP, DIP

좋은 객체 지향 설계를 위해서는 다형성 뿐만 아니라 SOLID도 알아야 한다. 가끔 악덕 면접관들은 이 SOLID가 무엇이냐고 물어보기도 한다. 그럼 대체 이 SOLID는 무엇인가? SRP, OCP, LSP, ISP, DIP의 앞 글자를 딴 것이다. 아직 이해가 안 되는 것이 당연하다. 각각이 뭔지 세세히 알아보자. SRP (Single Responsibility Principle) 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 허나 여기서 하나의 책임이라는 것은 문맥과 상황에 따라 다르므로 객관적으로 평가하는 것이 쉽지 않다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다. 예를 들어 UI를 변경하는데 SQL 코드부터 서버 전반에 걸쳐 고쳐야 ..

청춘 기록/수필

<마지막 몰입 나를 넘어서는 힘> 독서감상문

다사다난했던 고등학교 1학년 1학기를 무사히 마친 후, 어느새 여름 방학이 찾아왔다. 돌아보면 정말 많은 일이 있었다. 중학교 3학년 시절부터 한 가닥의 열정을 거머쥐고 지금까지 걸어오다가, 나도 모르게 한계점에 다다랐다. 하는 공부는 많았지만 그렇다 할 의지를 찾지 못해 조금씩 우울해져 갔다. 슬럼프였던 것이다. 그래서 그 한계점을 깨부수기 위해 나는 가족과 바다 여행도 가보고, 동기부여 영상도 시청해보며 자기계발서들도 많이 읽어 보았다. 그 중 우연히 어머니가 선물해주신 ‘마지막 몰입’이라는 책을 읽게 되었고, 그때서야 비로소 현재의 문제와 앞으로 가야 할 방향을 찾은 것 같았다. 이렇게 기적적으로 나에게 다가온 책은 내 슬럼프의 이유와 한계를 돌파하는 방법을 세부적으로 정의해주었다. 이 책에서 가장..

청춘 기록/여행기

임인년 새해에 끄적이는 2022년 1월 1일 나 홀로 등산 여행기

Happy New Year ! 어제 저녁, 2022년 첫 일출을 보기 위해 주산에 등산하기로 다짐했다. 그래서 아침 6시 30분 정도에 일어나서 집을 나섰다. 어두워서 등산하는 게 좀 두렵기도 했지만, 이번에 포기하면 쭉 실패의 기운이 돌 것 같아 그냥 가기로 했다. (아침인데도 불구하고 달이 밝게 떠 있었다.) 어느 정도 가니, 등산하는 사람이 몇 명 보여서 안심되었다. (나만 온 게 아니구나! 길을 잃을 일은 없겠다고 생각했다.) 그 사람들을 따라가며 오르막을 힘겹게 오르다 보니, 어느새 조금씩 밝아져 왔다. 일출은 왕릉에 올라가서 맞이하고 싶은 마음에, 조금 더 빨리 올라가기 시작했다. 그렇게 앞만 보고 올라가다 보니 왕릉에 도착했고, 이미 산악회에서 온 것 같은 사람들과 다른 가족들이 좀 있었다...

청춘 기록/수필

👋 잘 가, 2021년

기쁠 때도 있고, 슬픈 때도 있었다. 그런 날을 지내다 보니 어느새 2021년의 끝자락에 서있다. 2021년 1월에 열심히 중앙로에 있는 컴퓨터 학원에 다니며 C언어 배우고 컴퓨터활용능력 준비한 날들이 엊그제 같은데, 2021년 2월에 중학교를 졸업하고 가족과 여행 다니던 날들이 엊그제 같은데, 2021년 3월에 처음으로 기숙사에 입소하고 학교에 적응하려고 애쓰던 때가 엊그제 같은데, 2021년 4월에 전기전자기초(아두이노)를 힘들게 하던 때가 엊그제 같은데, 2021년 5월에 스택(STA+C) 본선을 준비한다고 허덕이던 때가 엊그제 같은데, 2021년 6월에 기말 준비한다고 애쓰던 때가 엊그제 같은데, 2021년 7월에 여름 해커톤하고, 축제한 때가 엊그제 같은데, 2021년 8월에 열심히 빼꼼이와 산..

청춘 기록/수필

2021 크리스마스 이브에 드는 생각들 🎄

2021년이라는 한 해를 또 건너오면서 힘든 날도 많았지만 그와 함께 좋은 일들도 정말 많이 생겼다. 힘들어도 버텨내며 노력한 대회에서 수상하고, 지옥같았던 기말고사 기간을 버티고 괜찮은 성적을 받고, 한치 앞도 보이지 않던 고등학생 생활에 이젠 조금씩 길이 보인다. 사실 여러 날들을 건너오면서 마음가짐이 많이 해이해진 것은 사실이다. 최고가 되겠다는 마음가짐을 몇 번이나 다시 바로잡고 노력이 유일한 길이란 것을 알면서도 귀찮아하고 많은 책을 옆에 갖다놓고도 몇 장 읽다가 다시 덮어놓고 운동한다고 해놓고 많이 빼먹은 날도 많았다. 그래놓고는 이번 해를 꽤 잘 살았다는 생각이 드는 내가 간사하긴 하지만, 그래도 잘 버틴 것 같다. 내게 찾아온 힘들었던 일에 비하면 성취에 따라오는 고통은 별거 아니었고, 주..

청춘 기록/수필

🐕 반려견으로부터 시작된 꿈 | STA+C 2021 회고록

처음으로 큰 성취를 이뤄내게 해준 대회 앞으로의 원동력이 될 첫 프로젝트 수상 경험 창업놀이터와 함께 이 STAC+2021 먹어보시개 프로젝트도 올해(2021년)의 전반을 함께한 프로젝트였다. 중소벤처기업부와 SK planet이 함께한 STA+C 2021(Smarteen App+ Challenge)이 얼마전에 완전히 막을 내렸다. 이번 대회 경험은 최우수상 수상을 떠나서 정말 값진 경험이라고 생각한다. 우리는 먹어보시개 팀으로 참여했고, 함께한 팀원은 태환, 성주, 현우, 보민이었다. (나는 팀장으로 참여했다.) 나는 대구소프트웨어마이스터고등학교에 입학한 후에, 선배들의 STA+C 대회 수상 소식을 많이 들어왔다. 그래서인지 나도 그 대회에 꼭 참여해서 수상하고 싶다는 생각을 많이 했었다. 마침 STA+..

청춘 기록/수필

2021 IT/SW 웨비나 시리즈 특강 | SW산업 및 개발

2021년 9월 28일, 대구소프트웨어마이스터고 및 SW마이스터고 4개교 연합 웨비나가 개최되었다. 그리고 사전질의에 참여하여 질문 대표 학생으로 선정되어, 평소 궁금하던 것들에 대해서도 질문할 수 있었다. 아래에 SW산업/개발 관련 웨비나 내용을 짧게 정리해보았다. 첫 번째 세션 : 소프트웨어로 뭘 하지? (조영훈 실장) 현재까지의 해외 소식들을 알아보자. 일본 정부의 한국 수출규제 강화, 한국을 일본의 백색국가 명단에서 제외 등의 상황. 또한 미국과 일본의 프라자 합의(Plaza Agreement, 1985)에서 미국의 빚이 커지고, 엔화를 올림으로써 빚이 가벼워짐. 중국도 최근 지속적인 대미 수출 흑자. 남아도는 달러를 미국 국채 매입으로 달러화로 조정 불가능. 합의되지 않으면 환율 공격. (환율조..

청춘 기록/수필

🌏 개발자가 자신의 세상을 만드는 일 | 2021 창업놀이터 회고록

2021년 전반을 함께한 프로젝트 비록 수상은 못했지만, 배움이 정말 많았던 대회 어제와 오늘에 걸쳐 '2021 창업놀이터 본선' 덕분에 서울에 다녀왔다. 우리 팀의 이름은 moreversal이었다. 이는 more과 universal의 합성어로, 모든 세대에 선한 영향을 주어 세대 간의 화합을 이루자는 포부를 담고 있다. 우리 팀은 민재, 경태, 현우와 나(팀장)로 이루어져 있다. 우리 팀은 여러 노력과 운이 따라준 덕분에 2021 창업놀이터에서 멘토링, 예선 등을 거쳐 본선에 오를 수 있었다. 우리 팀 지도교사인 김동균 선생님 덕분에 발표 하루 전날(12/16)에 서울에 도착해서 호텔에 묵을 수 있었다. 우리 프로젝트와 프로젝트의 진행 상황에 대해 더 기록하자면, 현재 코로나로 인해 일손이 부족한 상황..

청춘 기록/버킷 리스트

2021년 기말 시험 후 이루고 싶은 것

✅ 2021년 회고록 작성하기 ✅ 자바 프로그래밍 입문 책 끝내고 Java의 정석 책 읽기 ✅ 스프링 프레임워크 공부 본격적으로 시작하기 (with 전공도서, +TIL) ✅ 호미를 잡고 백엔드 개발하기 (Node.js + TypeORM) ✅ 12월 17일 성공적인 프로젝트 전시 (호미를 잡고 in 서울) ✅ 호미를 잡고 및 먹어보시개 프로젝트 회고록 작성 (+블로그 작성) ✅ Nest.js 프레임워크 공부하기 (with 노마드코더) ✅ 리눅스 운영체제 깊이 공부하기 (+블로그 작성) ✅ 소프트웨어 공학 깊이 공부하기 (+블로그 작성) ✅ 프론트엔드 개발(리액트) 공부해보기 (깊게X, 내 서비스 개발할 만큼만) ✅ 내 개인 프로젝트 개발 시작해보기 (after 스프링 프레임워크 공부) ✅ 전공역량강화 프로..

청춘 기록/동기부여

숨이 붙어 있으면 기회는 온다 | 전한길 동기부여

1. Memento Mori 죽음을 기억하라 2. Carpe Diem 현재를 즐겨라 3. Amor Fati 내 인생을 사랑하라 내 뜻대로 마음 먹은 대로 되는 것보다는 안 되는 게 더 많다. 성공하는 사람보다 실패하는 사람이 훨씬 더 많다. 세상에는 본인이 겪어야 될 고통은 본인이 견뎌내야 되는 것이고 바닥을 쳐야만 올라올 수 있는 것이다. 어떤 고통이나 어떤 슬픔도 결국에는 시간이 지나면 해결된다. 나는 청춘을 가지고 있다. 청춘은 가능성이다. 너무 지금만 보지 말고 멀리 봐라. 가지지 않은 것에 대해 불평하지 말고 가진 것에 대해 긍정적으로 생각하면 웃으면서, 즐기면서 살 수 있다. 지치면 지고 미치면 이긴다. 경쟁에서는 이기고 봐야 한다. '깡'을 가지고 이겨내라. 경쟁자보다 열악한 위치에 있다면 ..

공부 기록/끄적 노트

패스트캠퍼스 챌린지 최종 후기 | 30일간의 여정

평소처럼 패스트캠퍼스 강의들을 보다가, 4차 산업혁명과 기술 트렌드를 배경으로 '딥러닝/인공지능'에 흥미가 생겼다. 알파고는 인공지능 붐을 일으키는데 신호탄이 됐고, 이후 대한민국 정부나 기업 및 IT업계 엔지니어 등 많은 국민적 관심사가 인공지능 기술이 됐다. 그리하여 인공신경망을 기반으로 한 딥러닝(머신러닝의 일종)이 각광받으면서, 딥러닝 인공지능 개발자에 대한 연봉도 올라가고, 그렇게 유용한 거 이참에 나도 한 번 배워보고싶다는 마음이 생겨 '한 번에 끝내는 딥러닝/인공지능 초격차 패키지' 강의를 구입했다. 그 후 패스트캠퍼스 전액 환급 챌린지의 존재를 알게 되었고, 주저없이 바로 참여했다. 패스트캠퍼스 전액 환급 챌린지(갓생살기 30일 미션)에 등록하고, 11월 1일부터 꾸준히 하루에 1강의씩 수..

청춘 기록/수필

주니어 개발자에 대해 | SW마이스터고 4개교 연합 토크콘서트 내용 정리

SW마이스터고 졸업생 및 현 우아한 형제들 강석진 프론트 개발자의 한 마디 단순히 참여에 의의를 두지 않고, 그 안에서 또 다른 성장점이 무엇이 있었는지, 내가 어떤 도전을 했는지가 중요하다. 그런 것들을 포트폴리오에 녹여 내면 좋은 포트폴리오가 될 수 있을 것이다. 자신의 적성에 맞지 않으면 오래 할 수 있는 분야가 아니기 때문에, 자신의 적성에 꼭 맞는 일을 해야 한다. 백엔드, 프론트엔드 등의 개발들의 원론적인 것은 제품을 만드는 것에 있어 문제점을 해결하기 위한 여러 플랫폼일 뿐이다. 비즈니스 요구 사항에 따라 유연하게 변화할 수 있는 코드를 짜자. 갈등이 생겼을 때 어떻게 관리하면 좋을까 (김지예 잡플래닛 이사) 소통이 왜 중요할까? 세상이 변하고 있어서이다. 20세기의 가장 중요한 인재상은 성..

공부 기록/끄적 노트

패스트캠퍼스 챌린지 30일차 | 딥러닝 네트워크 연산 Introduction

Forward Propagation of Neural Networks 딥러닝의 가장 기본적인 연산들에 대해 알아보자. Deep Learning Process 딥러닝 모델은 데이터를 먹고 산다. 그러므로 데이터셋이 필요하다. (Data Perparation) 학습을 시키기 위해 뉴럴 네트워크를 설계한 후 구현해야 한다. (Neural Network Design & Implementation) 학습의 과정을 겪게 된다. (Model Traning) 이 모델이 얼마나 성능을 내는지 평가. 상용화 판단. (Performance Evaluation) 웹/앱 혹은 서비스에 실제로 적용 (Model Deployment) 위와 같이 동작하는 일련의 과정이 딥러닝이다. Model Traning 모델을 하나의 함수라고 가..

공부 기록/끄적 노트

패스트캠퍼스 챌린지 29일차 | 정규표현식

{} - *, +, ?을 사용하여 반복적인 패턴을 찾는 것이 가능하나, 반복의 횟수 제한은 불가 - 패턴 뒤에 위치하는 중괄호{}에 숫자를 명시하면 해당 숫자만큼의 반복인 경우에만 매칭 - {4} - 4번 반복 - {3,4} - 3 ~ 4번 반복 import re re.search('pi+g', 'piiig') re.search('pi{3,5}g', 'piiig') 미니멈 매칭 (non-greedy way) - 기본적으로 *, +, ?를 사용하면 greedy(맥시멈 매칭)하게 동작함 - *?, +?를 이용하여 해당 기능 구현 import re re.search(r'', 'haha') {}? - {m,n}의 경우 m번에서 n번 반복하나 greedy하게 동작 - {m,n}?로 사용하면 non-greedy하게..

우준성
'분류 전체보기' 카테고리의 글 목록 (5 Page)