전체 글 (28) 썸네일형 리스트형 JSCODE 마지막 회차 JSCODE가 시작된지 벌써 4주가 지났다. 4주 간 Java 기본 문법을 학습했다. 그 동안 뭘 했나 싶었는데 돌이켜보니 커리큘럼과 멘토님께서 강조해주시는 부분이 실무에서 많이 쓰이는 개념이었기 때문에 꽤 알차게 공부한 것 같다는 생각이 든다. 프로그래밍을 처음 접한 수강생들에게는 조금 빡빡한 4주가 될 수도 있었겠지만. 나와 같이 굉장히 의미있는 시간이 됐을 것이라 확신한다. JSCODE가 좋았던 건 사람들에게 정말 필요한 것을 알려준다는 것이었다. 지금 작성하고 있는 블로그도 평소에 계속 미뤄왔던 활동인데, JSCODE를 시작하면서 내가 공부하고 있는 것들을 기록하고 있다. 요즘에는 주 2~3회 글을 게시하려고 노력하고 있다. 아마 내가 이 활동을 하면서 가져가는 가장 의미 있는 것이 아닐까 싶다... Token과 JWT 세션, 토큰과 관련된 이전 글에 이어서 사용자 인가 방식 중 가장 많이 사용되는 방법 중 하나인 JWT에 대하여 공부해보았다. JWT란? - JSON Web Token의 약자 - Header, Payload, Signature로 구성 - Base64로 인코딩 - Header에는 토큰의 종류와 암호와 알고리즘 등과 같은 토큰에 관한 정보가 담겨있음 - Payload에는 발행일, 만료일, 사용자 ID 등 사용자 검증에 필요한 정보가 들어있음 - Signature는 Base64로 인코딩된 Header와 Payload를 알고리즘으로 서명한 값이 들어있음. Server마다 서명하는 암호값이 다르기 때문에 이 값으로 토큰이 조작되었는지 알 수 있다. 아래 사이트에서 jwt를 경험해볼 수 있다. https://jwt.. Token과 Session 주니어가 아닌 경력직 개발자임에도 Token과 Session의 개념을 정확히 모르는 경우가 꽤 있다고 한다. 나는 그러기 싫기 때문에 학습을 하고 기록을 해본다. Session Session은 유저의 정보를 DB에 저장하고 상태를 유지하는 값이다. 특징 Session은 특정한 id 값을 가진다. Session은 서버에서 생성하고 데이터베이스와 클라이언트에 쿠키로 저장된다. 클라이언트에서 요청을 보낼 때 Session을 같이 보내면 사용자가 누군지 알 수 있다. 사용자를 확인하기 위해 데이터베이스를 조회해야한다. 서버에 저장하기 때문에 클라이언트에서 사용자 정보가 노출될 위험이 없다. DB에 Session을 저장해야 하기 때문에 Horizontal Scaling이 어렵다. Token Token은 유저의 정.. JSCODE 7회차 이번 회차에서는 지금까지 학습했던 내용을 정리하면서 미션을 해결하는 방식으로 진행되었다. 헬스장 회원 관리 프로그램 만들기 1 요구사항: - 회원 정보를 저장할 저장소(MemberRepository)라는 클래스를 만들어서 활용해라. - MemberRepository는 회원을 저장할 수 있어야 한다. - 회원을 등록할 때는, 이메일, 이름, 나이 정보를 받아야 한다. - 회원을 등록할 때, 동일한 이메일을 가진 회원은 중복해서 존재할 수 없다. Member.java public class Member { private final String email, name; private final int age; public Member(String email, String name, int age) { this... SingleChildScrollView keyboardDismissBehavior 개발을 하다보면 자주 사용하는 위젯이지만 그 위젯의 속성을 전부 알기란 힘들다. 오늘 Flutter 강의를 들으면서 평소에 지겹도록 사용하는 위젯인 SingleChildScrollView의 keyboardDissmissBehavior라는 속성을 새로 알게 되었는데, ux 관점에서 봤을 때 적절하게 사용하면 좋을 것 같다. keyboardDissmissBehavior: 말 그대로 키보드 제거 동작인데 ScrollViewKeyBoardDissmissBehavior라는 enum 타입을 사용한다. - ScrollViewKeyboardDissmissBehavior.onDrag: 드래그를 하면 키보드가 내려감 - ScrollViewKeyboardDissmissBehavior.manual: 매뉴얼대로 키보드의 "완료.. JSCODE 6회차 이번 회차에서는 예외 처리와 Call by Value, Call by Reference에 대해 공부했다. 예외 처리는 개발자가 예기치 못한 예외 발생을 미리 대처하여, 프로그램의 비정상 종료를 막고 정상 상태로 유지하는 것이 목표이며 기본적으로 try-catch 문법을 자주 사용한다. Call by Value, Call by Reference는 값을 참조하느냐, 주소를 참조하느냐의 차이다. 연습문제 1 public class Main { public static void main(String[] args) { Money money1 = new Money(500); Money money2 = new Money(500); System.out.println(money1 == money2); System.out.. Dart Compiler 나는 1년 이상 Flutter를 이용해서 개발을 해왔다. 하지만 최근에 과연 Dart라는 언어에 대해서 잘 알고 있나라는 의문이 생겼다. 딱히 Yes라는 답이 나오질 않아, 노마드 코더에 있는 Dart 강의를 통해 가볍게 문법을 리마인드하는 시간을 가졌다. 강의를 들어가기에 앞서 Flutter 프레임 워크가 왜 Dart를 채택하는지에 대한 설명을 들었는데 처음 알게된 사실이라 기록을 해두려고 한다. https://dart.dev/overview Dart 공식문서 Dart overview A short introduction to Dart dart.dev Dart Compiler Dart는 두 개의 컴파일러를 가진다. Dart Web은 Dart 코드를 Javascript 코드로 변환해주고, Dart Nat.. JSCODE 5회차 이번 회차는 상속, 오버라이딩, 메서드 분리에 대해서 공부했다. 상속 현실 세계에서 부모가 자식에서 재산을 물려주는 것과 비슷하다. 부모 클래스를 상속 받은 자식 클래스는 부모의 속성이나 행위를 그대로 물려받을 수 있다. 오버라이딩 상위 클래스가 가진 메서드를 하위 클래스에서 재정의 하는 것 오버로딩은 같은 이름을 가진 메서드를 파라미터의 유형, 개수를 다르게 해서 여러 개 정의하는 것이다. 연습 문제 공학용 계산기 만들기 1 요구 사항: Calculator 클래스를 만들어라. 코드 package jscode5; public class Calculator { public int add(int value1, int value2) { return value1 + value2; } public int minu.. 이전 1 2 3 4 다음