시작하기에 앞서 우리는 DropDownButton으로 선택하면 우리가 선택한 항목들이 변경되는 것을 바라기 때문에 StatelessWidget에서 StatefulWidget으로 바꿔서 값이 변경되면 UI를 다시 그리도록 해봅시다 이 화면을 따라서 만들어볼겁니다 먼저 DropDownButton의 추가할 List들을 정리해줍니다 final iconList = [ MyFlutterApp.emo_angry, MyFlutterApp.emo_coffee, MyFlutterApp.emo_happy, MyFlutterApp.emo_sleep, MyFlutterApp.emo_surprised, MyFlutterApp.emo_thumbsup, MyFlutterApp.emo_tongue, MyFlutterApp.emo_un..
프로젝트에서 사용한 Spring Secutiry이용한 JWT 로그인 API를 정리하고자 글을 씁니다 목차 Spring Secutiry란 무엇인가 JWT란 무엇이고 RefreshToken 저장 방법 Spring Secutiry + JWT 구현하기 Spring Secutiry 가장 중요한 흐름도입니다 이것만 이해하면 구현은 쉽게 할 수 있습니다 듀얼 모니터라면 다른 모니터에 띄우고 계속 보시면서 구현하면 구조를 파악하기 수월하실 겁니다 하나 하나 알아봅시다 사용자가 어떤 정보를 서버에 요청합니다 여기서 정보는 어떤 정보든 상관없습니다 새로고침, Url검색등등을 통해 요청(Request)이 발생합니다 그러면 AuthenticationFilter가 그 요청을 가로챕니다 ex) PostMapping -> memb..
들어가기에 앞서 Refresh Token을 Cookie로 처리할까 고민 하던 도중 막상 왜 그렇게 저장하는지 자세히 모르고 사용했던 것 같다. 그래서 Jwt의 문제점들을 파악한 후에 써야 후에 고생하지 않을 거 같아서 문제점들을 알아보기로 했다 JWT의 문제점들 XSS(Cross Site Scripting) 웹 해킹 중 하나인 XSS는 게시판이나 웹 등에 JS와 같은 스크립트 코드를 삽입 해 개발자가 생각하지 못한 기능이 작동하도록 하는 공격 대부분의 웹 해킹 공격 기법과는 다르게 사용자-> 클라이언트를 대상으로한 공격이다 ex) 해커가 원하는 링크를 클릭하면 사용자가 가지고 있는 Cookie등을 사용하고 있는 서버로 Request를 보낸다 그러면 서버는 Response로 응답하기 때문에 해커가 원하는 ..
양방향 연관관계에서 중요한 것 알고 가야할 것 1. DB는 FK(외래키)하나로 관계를 맺은 Table을 탐색할 수 있다 2. DB랑은 다르게 객체는 객체안에 탐색하고 싶은 객체와 참조를 맺어놔야 탐색이 가능하다 3. 양방향 매핑은 단방향 매핑과 다르게 주인을 정해줘야 한다 (주인이 아니라면 조회밖에 하지 못한다) 코드를 보면 Member @Entity @Table(name = "member") @Getter @Setter @Data @NoArgsConstructor @AllArgsConstructor public class Member { @Id @Column(name = "member_id") private Long member_id; @Column(name = "id") private String i..
현 시대는 객체를 관계형 DB에 저장해서 관리를 합니다 그렇다면 관계형 DB안에 객체를 저장하려면 SQL을 이용하여 저장해야 합니다 SQL 중심의 개발이죠 Insert, Update, Select, Delete , Create..등등 1. 무한 반복, 지루한 코드 public class Member { private String memberId; private String name; ... } INSERT INTO MEMBER(MEMBER_ID, NAME) VALUES SELECT MEMBER_ID, NAME FROM MEMBER M UPDATE MEMBER SET ... 위 객체를 RDB(Relational Database, 관계형 데이터베이스) SQL을 이용하여 저장한 코드입니다 그런데 만약 DB구성..
백엔드를 계속 공부하다가 프론트랑 백엔드를 연결해서 공부하면 더 재밌겠는데라는 생각으로 그냥 바로 Dart 언어 & Flutter강의를 들으면서 시작했다 . 따라하고 조금의 이해를 하기까지 한 5일 정도 걸린 거 같다 https://github.com/sleeg00/toonflix GitHub - sleeg00/toonflix Contribute to sleeg00/toonflix development by creating an account on GitHub. github.com 나름 재밌었다 솔직히 말하면 프론트엔드를 거의 처음 접해보는 것인데 물론 HTML, CSS ,JS등 한번 씩은 다 보았다 이런 프레임워크를 내가 사용할 줄은 몰랐다 그래서 많은 고민을 했다 Vue를 사용할까 React를 사용할..
오늘은 Go의 배열, if문, Switch문을 알아봅시다! 배열 package main import "fmt" func main() { names := []string{"nico", "lyn", "dal"} names = append(names, "flynn") fmt.Println(names[2]) } 배열 선언 방식은 다음과 같습니다 names := []string{~}을 통해 문자열 배열을 만들어 줬습니다 그리고 ppend를 통해 "flynn"을 배열에 추가해주었구요 그런데 여기서 append("flynn)만 적는다면 오류가 됩니다 names = append(어디에 append(추가)할 것인가, "무엇을 추가할 것인가?") (참고 append는 맨 뒤에 값을 넣어준다) 또 여기서 중요한 점은 app..