목록전체 글 (314)
ecsimsw
웹 사이트에 접속하는 과정 구글에 접속하는 방법은 쉽다. 주소창에 https://www.google.com 만 입력하면 된다. google.com 이 ip주소가 아니라는 건 안다. 우리가 봐온 ip주소는 192.168.151.112 같은 숫자 꼴이었으니 말이다. 이런 google.com, naver.com처럼 ip 주소를 문자로 표현할 수 있도록 하는 서비스를 DNS(Domain Name System)이라고 하고 그 문자열을 도메인이라고 한다. 이번 포스팅에서는 대충 DNS 서버로부터 ip주소를 얻어 서버에 페이지 리소스를 요청하고 응답받는다는 대답 말고, 조금 더 깊게 데이터를 요청하고 응답하기까지의 과정을 TCP/IP 모델의 역할과 함께 설명하고자 한다. 1. 목적지 ip 주소 확인 도메인 주소가 입..
자바는 항상 Call by Value 자바 Call by value, Call by reference를 검색하면 많은 블로그에서 의견이 분분하다. Call by reference라는 블로그도 있고, 잘못된 예시로 설명하는 글도 보였다. 결론부터 말하면 자바는 Call by value이다. 이번 포스팅에서는 Call by value인 이유와 헷갈릴 수 있는 예시를 메모리 구조를 그려보며 하나씩 짚어볼 생각이다. 변함과 변하지 않음 컴퓨터 공학을 전공하고 C언어 수업을 들었다면 swap 예시를 꼭 한번은 봤을 것이다. 함수로 main의 a,b 값이 변하지 않는 것을 보여주면서 Call by value를, 주소를 직접 넘겨 a,b 값이 변하는 것을 보여주면서 Call by reference를 배웠다. Call..
복기 한 해를 정리하고 나를 돌이키고자 한다. 무엇을 느꼈고 어떤 생각을 했나를 기록하고 싶다. 처음에는 독자를 위해 존댓말 썼었는데, 다른 사람을 위한 글이라는 생각에 도저히 내 이야기가 안 써졌다. 편하게 일기처럼 기록하려고 한다. 한 줄로 내 2020년을 정리하면, '배울게 많았고, 배워서 다행이다.'인 것 같다. 꼭 지식 뿐만 아니라, 마인드, 대인 관계, 경제, 글쓰기 등 참 배울게 많았던 한 해였고, 그만큼 배웠던 한 해였던 것 같다. 변화를 만들어 본 경험 어렸을 때부터 말랐었다. 마른 것이 신경 쓰여 여름에도 반팔, 반바지를 입어본 적이 거의 없었다. 마른 몸을 가리려 오히려 큰 옷을 입어 왔다. 올해 운동을 하고 식습관을 바꾸면서 몸에 변화를 만들어보았다. 살을 찌우기 위한 운동이 처음이..
자바의 Thread Safe 여러 스레드를 사용하면 시스템 자원의 사용, 응답시간, Context Switch 횟수를 줄일 수 있다는 장점을 얻을 수 있다. 대신 데이터의 충돌 문제가 발생할 수 있다. 여러 테스크가 동시에 처리되도록 구현하는 것을 동시성 프로그래밍, 데이터 충돌과 같은 동시성 프로그래밍으로 발생되는 이슈를 피하는 방법을 동시성 보장이라고 한다. 이번 포스팅에서는 자바의 동시성 보장 방식, 가장 기본적인 synchronized, volatile, atomic 세 가지 키워드를 정리하고자 한다. 가시성 문제와 volatile 가시성 문제는 여러 개의 스레드가 사용됨에 따라, cache memory와 Ram의 데이터가 서로 일치하지 않아 생기는 문제를 의미한다. 한 스레드가 변경된 값을 ca..
우아한테크코스 선발 과정이 끝난 이후 오늘의 온라인 코딩 테스트로 우아한테크코스 3기 선발 과정이 완전히 끝났다. 평소와 같은 24시간 안에서 선발 과정을 위한 공부를 더 하려면 잠을 줄여야 했고, 하루 안에서 잠자는 시간이 두 번으로 쪼개지는 정말 안 좋은 생활 패턴을 가졌다. 피곤에 쩔어선 2주 차부턴 운동을 못했고, 3주 차부턴 정말 성격이 망가지는 것을 느꼈다. 피부도 난리 나고... 그래서 테스트만 끝나면 정말 편하게 잠이라도 자고, 영화라도 보려고 했는데, 막상 끝나니까 내일 뭘 해야 할지 모르겠어서 머릿속을 정리하는 글을 쓰고 싶어 졌다. 그래서 뭘 해야 하지,,, 내일부터 결과 발표까지 할 것 결과 발표 이후로 공부할 것이 좀 차이가 있을 것 같아, 일단 결과에 대한 생각은 미뤄두고, 그 ..
자바 깊이 알기 / Immutable 객체와 메모리 구성 아래 코드를 먼저보고 출력 값을 고민해보자. class App2 { public static void main(String[] args) throws Exception{ Integer i = 10; changeInteger(i); System.out.println(i); } static void changeInteger(Integer a){ a = 20; } } Integer는 int와 다르다. 참조 타입이기 때문에 힙 영역에 있는 객체를 참조할 것이고, changeInteger 에서 a는 힙에 있는 그 객체 자체를 가리키기 때문에 i 값이 변경되어야 하는건 아닐까. 틀렸다. Integer는 Immutable 형이다. Integer class를 까..
1차 합격 발표 15분 전부터 떨려서 아무것도 못했습니다. 2분 남겼을 때는 구글 메일 앱을 새로고침 하면서 메일을 기다렸고, 예정되었던 3시 정각에 바로, 합격 메일을 받을 수 있었습니다. 자기소개서를 처음 써봐서 많이 부족하다고 생각했고, 걱정했던 것 만큼 1차 합격 소식에 기뻤습니다. 프리코스 준비 합격 메일 이후에 프리코스에 대한 공지 메일이 왔습니다. 11월 25일 다음주 수요일부터 3주간, 3개의 미션을 해결하고 github으로 결과물을 제출해야 합니다. 미션을 전달받기 이전인 지금은 3주의 프리코스에 자신감이 넘치는 상태입니다. 설령 불합격한다고 해도 준비하는 과정에서 배울 수 있는 시간이라고 생각해서입니다. 당연히 합격하고 싶고 합격을 위해 최선을 다할 것이지만, 실패해도 배울 수 있는 기..
Spring Mail / Google Smtp server / @Async Send email from a printer, scanner, or app - Google Workspace Admin Help Set up a device or app to send email through G Suite This article is for G Suite administrators. If you're trying to send email from a device or app using your Gmail account, ask your G Suite admin for help. As a G Suite admin, you can set up devices support.google.com 스프링 부트로 사용자의 ..