분류 전체보기 498

[독서노트] C# 교과서 개정2판

지은이 박용준출판 (주)도서출판 길벗발행 2025.06.20 2020년에 동일 저자가 쓴 책의 개정판이다. 그 당시에는 Visual Studio 2019, C# 8.0 으로 내용을 소개했는데, 2025년 5월 기준으로 C# 은 13버전, Visual Studio 2022 커뮤니티 기준으로 설명하고 있다. 책 제목처럼 처음 C# 을 접하는 사람들에게 교과서같은 역할을 해줄거라고 생각한다. 그렇다고 C# 이라는 언어의 방대한 기능들을 모두 설명하는 거는 아니지만, 얇은 종이로 책의 페이지 수가 790 쪽에 이른다. 국내 개발 서적중에서 이렇게 쪽수가 많은 책이 오랜만인듯하고 저자의 노고가 많았을듯 하다. 기능을 소개할때 출력되는 예제 프로그램이 항상 같이 있는데, 그래서 페이지 수가 늘어난 것일 수 있다...

Thinking/Book 2025.07.13

[독서노트] Do it! 플러터 앱 개발&출시하기 - 개정판

지은이 조준수출판 이지스퍼블리싱(주)발행 2025.07.08 2024년에 출간된 "Do it! 플러터 앱 개발&출시하기" 초판의 개정판이다. 요새 AI LLM 을 사용해서 많이 개발하는 흐름에 맞춰서 제미나이 사용 하는 부분을 더 추가해서 나온게 아닌가 싶다 개인적으로 봤던 플러터 개발서 중에서는 가장 실용성 높게 앱을 개발하는 방법을 알려주는 책이지 않을까 생각한다. 보통의 플러터 관련책들은 책 초반에는 플러터 설치와 다트(Dart) 문법 설명과 위젯 생명주기등을 알려주는 부분으로 시작하면서 캘린더 앱 같은 정말 간단한 앱을 만드는 과정인데, 이 책은 바로 첫번째 앱부터 서버리스로 파이어베이스와 통신하는 실 서비스 가능한 수준의 앱을 작성하는게 시작한다. 그래서 플러터를 전혀 접해보지 않은 입문자..

Thinking/Book 2025.07.08

CORS (교차 출처 리소스 공유) 오류 설명

웹 브라우저는 보안을 위해 동일 출처 정책(Same-Origin Policy)이라는 규칙을 따릅니다. 이 규칙은 웹페이지가 로드된 출처(Origin)와 다른 출처의 리소스에 접근하는 것을 제한한다. 여기서 "출처"는 프로토콜(http, https 등), 호스트(도메인 이름), 포트 번호를 조합한 것을 의미한다. 예를 들어, http://mywebsite.com:8080 에서 로드된 웹페이지는 http://anotherwebsite.com 에 있는 데이터나 https://mywebsite.com 에 있는 데이터에 바로 접근할 수 없다. 이는 악의적인 웹사이트가 사용자 모르게 다른 웹사이트의 정보를 빼가는 것을 막기 위한 보안 조치이다. - exchange.html 실시간 달러 환율 로딩 중....

안보이는 프로세스 찾기 on Windows

Windows 에서 가끔씩 발생하는 듯한데, 폴더 이름을 다른거를 바꾸거나 삭제하려고 할때 "다른 프로그램에서 열려 있으므로 작업을 완료할 수 없습니다" 라는 메시지가 나온다. 그런데, 해당 폴더에서 작업했던 프로그램들을 종료하고 명령 프롬프트(커맨트 창), 윈도우 탐색기도 다 닫았는데도 폴더 이름 변경이 안된다. 작업 관리자에서 확인해봐도 사용 했던 프로그램은 안보이는데, 폴더 이름 변경이 안된다. 종료 처리가 안된 프로세스가 폴더를 잡고 있나 보다 생각해서 이럴때는 보통 Windows 를 재부팅하면 되겠지만 재부팅을 못하는 상황도 있다. (중요한 작업을 돌리고 있거나 재시작하기에는 부담스러운 작업들...) 방법을 찾아보니 이런 상황에서 사용할 툴이 마이크로소프트에서 제공한다.- 프로세스 탐색기ht..

Engineering/Windows 2025.06.16

Spring @Async 사용 예제

다음과 같은 코드가 있다. DB 에서 처리할 작업 목록을 가지고 와서 하나씩 처리하는 코드인데, 한번에 하나씩 즉, 동기식으로 동작한다.@Sl4j@Componentpublic class ScheduledTask { private final DoService doService; private final DoMapper doMapper; @Scheduled(fixedDelayString = "300000") public void analyze() { Job job; while((job = doMapper.findJobsWithNotRunning()) != null) { int rs = doMapper.updateJobStatusIfNotRun..

Engineering/Spring 2025.06.09