분류 전체보기 65

잡담 + PS 이야기 한 스푼과 개발 이야기 한 스푼을 곁들인

요즘 매일매일 PS를 하고 있긴 한데... 뭔가 CP는 열심히 참여를 못했다. 요즘 개발 쪽도 신경쓰느라고 (진행 중인 자프링 프로젝트가 있다) 정신이 없다. 역시 두마리 토끼를 다 잡는건 어려운가보다. 그래도 오프라인 행사를 열심히 참여했다. 그동안 사실 PS가 재밌는 나머지.. 개발은 좀 손을 놓고 있었는데 오프라인 컨퍼런스를 많이 다니면서 개발에 대한 자극도 받고 새로운 주제나 기술에 대한 흥미를 가득 채울 수 있었다. 구글 I/O extended도 다녀오고, ㅎㅎ 인프콘도 당첨되어서 다녀왔다! (물론 주변에 같이 당첨된 사람이 없어서 슬프게도 솔플이었다.......) 여담으로 솔브드 디코에서 주는 한별이 인형을 경품으로 받았다. 한별이 2차 창작 콘테스트 당첨품인데 귀여운 인형과 코롯토가 왔다 ㅎ..

Daily 2023.08.25

진지한 고찰과 대비되는 가벼운 근황

솔직히 이런저런 잡생각 버리고요즘 같이 더운 날 시원한 카페에서 아아메 마시면서 PS 하는게 제일 재밌다.집은 뭔가 집중이 잘 안된다. 밖에 나와야만 공부가 잘되는 스타일이다. 특히 카페 중에서도 채광 좋고 탁 트인 곳에서 더 머리가 잘 돌아간다. (기분탓이나 변명이 아니라 진짜로 층고가 높고 뷰가 탁 트인 곳에서 창의성이 더 잘 발휘된다는 연구 결과가 있다. 유현준 교수님 피셜)사실 카페에서 기분이 더 좋아서 텐션이 올라가는 것도 있다. 음료도 맛있고 환경도 쾌적하니까 더 그런듯?방학이라 요즘은 매일 카페 PS를 시전하고 있다. 오늘도 사실 카페와서 정수론 보면서 머리 좀 싸매다가 갑자기 블로그 쓰고 싶어져서 켰다.문제 풀다가 시원한 음료 한 번 마시고 한별이 한 번 보고 다시 문제풀기오늘 되게 기분이..

Daily 2023.07.28

요즘 하는 진지한 생각들 정리

Era of global boiling has arrived!!! 요즘 진짜 너무 덥다. 이건 어제 나온 UN의 발표문이다. 이제 진짜 사람들이 몸소 기후 변화를 체감하는 시기가 왔다. 우리나라도 기후가 점점 바뀌면서 기우 양상이 장마가 아니라 다르게 바뀌고 있다는 이야기가 나돈다. 매년 치솟는 기온, 매년 갱신하는 폭우량.. 침수 사태.. 세계적으로도 지중해 쪽 남유럽 ~ 북아프리카 일대가 엄청난 폭염과 이상기후 현상에 고통받고 있다. 다들 경각심을 가지면 좋을 것 같다. 여기에다 개발이나 PS 이야기만 계속 올리다보니 말할 기회가 이제서야 온 것 같다. 사실 주전공은 기후에너지시스템공학이다...(과 이름이 너무 길어서.. 다들 기후에너지로 줄여서 부르는게 보통) 기후, 환경, 에너지 관련 전공자로서 ..

Daily 2023.07.28

API란? : REST API와 RESTful API의 차이는?

1. API (Application Programming Interface) 프로그램 간 상호작용하기 위핸 매개체를 말한다. 클라이언트의 요청을 서버에 잘 전달하고 서버의 결과물을 클라이언트에게 잘 돌려주는 역할을 한다. 좀 더 자세하게 설명하면, API는 프로그램 간 소통하는데 사용되는 규칙과 도구의 집합을 의미하며, 소프트웨어나 애플리케이션 사이에 데이터 교환 / 서비스 요청 / 응답받을 수 있는 인터페이스이다. API에는 수많은 API들이 있고, 다양한 형태로 나타난다. 백엔드 개발자로서 알아야 하는 API 몇 가지를 소개하자면, (1) 웹 API : 웹 기술을 사용하여 데이터를 주고 받는 API 이다. 주로 HTTP 프로토콜을 통해 요청(Request)와 응답(Response)을 주고 받으며 이에..

[NETWORK] HTTP 개관

아래 내용은 HTTP 완벽 가이드 (insight) 책을 읽으며 정리한 것이다. 1. HTTP 란? HTTP (Hypertext Transfer Protocol) 의 약자로, 전 세계의 웹 브라우저, 서버, 웹 애플리케이션이 모두 HTTP를 통해 대화한다. HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에 데이터 전송 중에 손상되거나 작업이 꼬이지 않음을 보장한다. 2. HTTP가 웹 트래픽을 어떻게 전송하는지? 웹 콘텐츠는 웹 서버에 존재한다. 웹 서버는 인터넷의 데이터를 저장하고, HTTP 클라이언트가 요청한 데이터를 제공한다. 클라이언트는 서버에게 HTTP 요청을 보내고, 서버는 요청된 데이터를 HTTP 응답으로 돌려준다. 3. HTTP의 메서드 HTTP는 HTTP 메서드라고 불리는 여..

AtCoder ABC #309 UpSolving + 첫 앳코더 후기

더보기 1. 앳코더를 신청한 계기 BOJ 문제를 100일 넘게 꾸준히 풀면서 점점 문제 푸는데에 긴장감이 없어지는 것 같았다. 시간 제한이 있는 것도 아니고, 내가 풀고 싶은 시간 아무때나, 난이도를 자유롭게 골라서 풀면 되는 점이 오히려 역효과로 작용했다. 이 역효과에 대해 좀 더 자세히 설명하자면, 내 컨디션에 맞춰서 문제 풀이가 느슨해진다는 점이다. 매일 어려운 문제, challenging 한 문제, 새로운 알고리즘에 도전해야 실력이 빨리 늘텐데 앞으로 나아가기 보다 쉬운 문제를 풀면서 제자리에 안주하는 느낌이 들기 시작했다. 별로 배운 것도 없는 수준이고, 다른 사람들이 웰노운이라고 말하는 것조차 다 소화하지 못했는데도 내가 피곤하다는 이유, 시간이 모자라다는 이유 등으로 새로운 것을 배우는데에 ..

PS 기록/CP 2023.07.09

[SOLID] SRP : 단일 책임 원칙

SOLID의 첫 번째 원칙은 SRP (Single Responsibility Principle) 이라는 단일 책임 원칙이다. 단어 그대로의 뜻으로, 딱 하나의 책임을 가져야 한다는 의미. 1. 책임이란 무엇인가? 객체지향 Java 프로그램 설계 관점에서 볼 때, SRP에서 말하는 책임의 기본 단위는 객체를 말한다. 어떤 객체가 있으면, 그 객체는 단 하나의 책임만 가져야 한다는 의미. 책임이란 무엇일까? 책임은 객체가 맡은 무언가라고 볼 수 있다. 객체가 "해야 하는 것" or "할 수 있는 것" or "해야 하는 일을 잘 할 수 있는 능력" 등을 의미한다. 한 객체에 너무 많은 책임이 들어가면 프로그램이 복잡해진다. 또한, 책임이 많으면 규모가 큰 프로그램에서 오류가 났을 때, 책임 소재를 명확하게 하..

Java Spring 2023.07.06

GoF 디자인 패턴 - SOLID 원칙 이해하기

SOLID 원칙이란? 소프트웨어 설계 시 지켜야 하는 5가지 원칙이 존재한다. 각각의 원칙의 앞 글자를 따서 SOLID 원칙이라고 부른다. 개발자들은 좋은 소프트웨어를 만들기 위해 여러 가지 원칙을 고려한다. 특히, 그 중에서도 SOLID 원칙은 대부분의 개발자들이 소프트웨어 설계 시 중요하게 여기는 원칙이며, 이에 어긋나지 않게 프로그래밍 하는 법을 고민하고 실행해야 한다. 각 원칙 별로 게시글을 나눠서 업로드 할 예정이다. 또한, 원칙에 대해 공부/실습한 구체적인 내용을 추가하겠다. S : SRP (Single Responsibility Principle, 단일 책임 원칙) O : OCP (Open-Closed Principle, 개방-폐쇄 원칙) L : LSP (Liskov Substitution ..

Java Spring 2023.07.05

스프링 빈 의존 관계 주입 (자동/수동), 빈 스코프는 무엇인가?

더보기 스프링 빈(Spring Bean)은 간단하게 다음과 같은 라이프 사이클을 가진다. 객체 생성 -> 의존 관계 주입 스프링 빈의 이벤트 라이프사이클은 다음과 같다. 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 이런 의존 관계를 자동 or 수동으로 주입할 수 있다. 최근 스프링 기술 경향으로 볼 때, 편리한 자동 주입 기능을 기본으로 사용하면서 수동 주입이 필요한 것은 추가로 등록하고 있다. 기본적으로 자동 주입을 생각하되, 다형성을 적극 활용하는 비즈니스 로직(객체)는 수동 등록을 고민해보는 것이 좋다. 수동을 써야 하는 경우는 본 게시글 아래 부분에 참고 부분으로 적어놓겠다. 다시 자동 주입으로 넘어가자면, 의존 관..

Java Spring 2023.07.03

싱글톤 패턴, 싱글톤 컨테이너

싱글톤 패턴 여러 가지 디자인 패턴 종류 중의 하나, 하나의 클래스 -> 하나의 객체 인스턴스만 가짐 (클래스의 인스턴스가 딱 한 개만 생성되는 것을 보장하는 디자인 패턴) 해당 객체가 딱 한 개 생성되고, 생성된 객체 인스턴스를 여러 곳에서 공유하게 만들 수 있음 (여러 번 호출해도 같은 객체 인스턴스를 반환하는 것을 확인 가능) 싱글톤 패턴으로 만들어진 클래스의 인스턴스는 전역 인스턴스라서 다른 클래스의 인스턴스들이 데이터를 공유할 수 있음 싱글톤 패턴의 단점, 문제점 싱글톤 인스턴스를 여러 곳에서 많이 공유할 경우 다른 클래스의 인스턴스 간 의존성이 높아질 위험 싱글톤 패턴 구현하는 코드 많이 필요 의존 관계에서 클라이언트가 구체 객체에 의존하여 DIP 원칙 위반함 의존 관계에서 클라이언트가 구체 ..

Java Spring 2023.07.03