묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
기본키 전략 max + 1 문의
안녕하세요 영한님 JPA 책 부터 인프런의 여러 좋은 강의들 항상 잘 듣고 배우고 있습니다. 간혹 기본키를 숫자 형태로 max + 1로 하는 레거시한 프로젝트를 만나는 경우가 있는데요. 이 경우 동시성 이슈 관련하여 JPA에서 어떤 전략을 사용해야하는지 궁금합니다. (Spring Data JPA 사용 중입니다) 구체적인 예시를 들면 * 사용자 - 식단카드라는 두 개의 테이블이 존재합니다. * 식단카드에는 card_key, user_id를 복합키로하며 그 외 카드 식단 정보가 있습니다. * 식단카드 생성시 user_id를 조건으로 검색하여 가장 높은 card_key를 가져와 + 1해서 card_key를 만들어 저장합니다. 이 때 클라이언트 단에서 비동기 처리로 여러 식단카드를 등록하려다보니 먼저 실행된 요청 쓰레드의 트랜잭션이 성공하고, 두번째 실행된 요청 쓰레드가 먼저 실행된 쓰레드랑 같은 최근값을 읽고 + 1해서 커밋하려니 중복된 키 오류가 발생합니다. 제가 시도해본 방법은 여러가지였는데, 모두 잘 안되더라고요. MariaDB innoDB 엔진 사용하고요. 기본적으로 JPQL을 사용하여 max + 1 값을 가져오는 Repository 인터페이스 메서드 선언 시도 해본 방법 1. @Transactional isolation level을 SERIALIZBLE 로 변경 * 해결 되지 않음 2. 비관적 락 @Lock(LockModeType.PESSIMISTIC_WRITE) * 해결 되지 않음 * 구글링 찾아보니 기본키 인덱스 이외의 다른 인덱스가 있을 경우 동작하지 않는다고 하는데, 정확한 공식 문서 내용을 찾아볼 수가 없네요. 3. JPQL NATIVE QUERY 사용하고 FOR UPDATE로 LOCK * 해결 되지 않음 결국 Spring Retry 연결하여 실패시 계속 재시도하여 들어가게끔 처리는 했는데, 어거지로 해결한 느낌이라 계속 속에 남아있네요 ㅜㅜ 트랜잭션이나 LOCK에 대해서 공부해서 적용해봐도 안되는 이유를 모르겠습니다ㅜㅜ
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
안녕하세요. 질문드립니다.
안녕하세요. 1.중간중간마다 껏다가 다시 켜준다고 무엇인가 끄고 node.js server 를 다시 시작하시던데 끄는건 어떻게 하는거고 시작할때는 토터미널에 node.js server 를 다시 실행해주는건가요? 2. 수업 중간중간마다 {( 를 해주거나 ((를 해주거나 어떨때는 / 이나 . 이 들어가고 하던데 상황마다 어떤게 들어가는지 헷갈립니다. 3. 스스로 무언가를 하고싶을때 위치나 배열, 단어 등 뭘 써야할지 헷갈리기도 합니다. 빨리 익힐려면 어떻게 해야하나요.? 4.작업한 내용들을 노트북에 다시 옮겨서 실행을 해볼려고 하는데 이럴떄는 파일자체를 옮기면 안되고 처음부터 node.js 깔고 react 깔고 중간중간마다 수업시간에 터미널로 깔아준것들 다 설치해서 일일이 노트북에 작업해야하는건가요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
값 받아오기 질문
안녕하세요, 선생님께서 이 문제와 같이 한 줄에 하나씩 있는 값을 받아오실 때 Line=[] for _ in range(n): tmp=int(input()) Line.append(tmp) 위와 같은 방으로 받아오시는데, 저는 x=[int(input()) for _ in range(n)] 이 한 줄로 처리하고 있습니다. 혹시 이렇게 하면 데이터 받아오는 데 있어 시간 지연이 크다던지, 자료가 어그러질 수 있다던지 하는 위험성이 있는 건가요? 지금까지 제가 시도해보기로는 문제 없었는데 왜 더 길게 쓰시는지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
post 함수의 호출 관련 질문
안녕하세요 오랜만에 질문드립니다 ㅎㅎ Razor 실습중에 View에서 <form method="post"> method = "post"가 컨트롤러의 OnPost를 말하는건가요? post와 OnPost가 왜 연결이 되는지 궁금합니다.. 대소문자의 차이와 On 문자의 존재 여부도 다른데 말입니다. 문법이라면 문법이겠지만 규칙성이 있는지 궁금합니다. <form method="post"> <label asp-for="HelloMsg.Message">Enter Message</label> <br /> <input type="text" asp-for="HelloMsg.Message"/> <br /> <button type ="submit">Submit</button> </form> public class IndexModel : PageModel { //모델 바인딩 참가 암시 [BindProperty] public HelloMessage HelloMsg { get; set; } public string Noti { get; set; } public void OnGet() { this.HelloMsg = new HelloMessage() { Message = "Hello Razor Pages" }; } public void OnPost() { this.Noti = "Message Changed"; } }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Events 항목 수정이 안 돼요.
위 이미지에서 Events의 항목을 수정하고 하는데 수정이 안 됩니다. 클릭이 안 되는데 무슨 문제인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
에러 확인 좀 부탁드릴꼐요...
Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/net15/Documents/GitHub/jpashop/build/reports/tests/test/index.html * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. 에러 문구인데요.. 서버는 실행 되는데 테스트하면 자꾸 저런 에러가 나옵니다 아 그리고 메뉴얼파일도 어디에 있는지 알려주세요... 나중에 버전 올라가고 안되는 오류들.. 정리해놓은 파일이 있으시다고 하신 글들을 봐가지고요 ... package jpabook.jpashop;import org.assertj.core.api.Assertions;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.transaction.annotation.Transactional;@RunWith(SpringRunner.class)@SpringBootTestclass MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("memberA"); //when Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then// Assertions.assertThat(findMember.getId()).isEqualTo(member.getId());// Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); } spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop;MVCC=TRUE username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: truelogging: level: org.hibernate.SQL: debug# org.hibernate.type: trace package jpabook.jpashop;import org.springframework.stereotype.Repository;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;@Repositorypublic class MemberRepository { @PersistenceContext private EntityManager em; public Long save(Member member) { em.persist(member); return member.getId(); } public Member find(Long id) { return em.find(Member.class, id); }} package jpabook.jpashop;import lombok.Getter;import lombok.Setter;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entity@Getter@Setterpublic class Member { @Id @GeneratedValue private Long id; private String username;}
-
미해결모의해킹 실무자가 알려주는, XSS 공격 기법
login.php, write.php 등 여러 php에서 화면이 안 뜹니다
프롤로그 5강을 듣고 있는 중인데요 http://127.0.0.1/board/ 접속이나 회원 가입은 되는데 회원가입이 완료되었다는 알림창이나 http://127.0.0.1/board/login.php 에서 화면이 제대로 뜨지 않습니다 D 드라이브에 설치해서 그런걸까요.... 해결법을 알려주세요./...
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
자료가어딧나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결인터랙티브 웹 개발 제대로 시작하기
이런 방법은 나쁜건가요
저는 이런 문제가 생길때는 이렇게 코드를 작성했었는데 혹시 나쁜 방식인지 여쭤보고 싶습니다. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="css/reset.css"> <style media="screen"> input[name*="door-trigger"] { display: none; } .stage { display: flex; align-items: center; justify-content: center; width: 100vw; height: 100vh; background: #333; } .door { position: relative; width: 100px; height: 150px; perspective: 800px; } .door-back { overflow: hidden; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: black; } .ilbuni { position: absolute; bottom: 0; width: 100px; height: 100px; background-repeat: no-repeat; background-position: 50% 50%; background-size: contain; transform: translate3d(100%, 0, 0); transition: 0.5s 0.5s; } .door:nth-Child(1) .ilbuni { background-image: url('images/ilbuni_0.png'); } .door:nth-Child(2) .ilbuni { background-image: url('images/ilbuni_1.png'); } .door:nth-Child(3) .ilbuni { background-image: url('images/ilbuni_2.png'); } .door-body { position: absolute; left: 0; top: 0; width: 100%; height: 100%; transition: 0.5s; transform-origin: 0%; } .door:nth-Child(1) .door-body { background: rgba(255, 0, 0, 0.7); } .door:nth-Child(2) .door-body { background: rgba(0, 255, 0, 0.7); } .door:nth-Child(3) .door-body { background: rgba(0, 0, 255, 0.7); } #door-trigger01:checked ~ .stage .door:nth-child(1) .ilbuni { transform: translate3d(0, 0, 0); } #door-trigger01:checked ~ .stage .door:nth-child(1) .door-body { transform: rotateY(-120deg); } #door-trigger02:checked ~ .stage .door:nth-child(2) .ilbuni { transform: translate3d(0, 0, 0); } #door-trigger02:checked ~ .stage .door:nth-child(2) .door-body { transform: rotateY(-120deg); } #door-trigger03:checked ~ .stage .door:nth-child(3) .ilbuni { transform: translate3d(0, 0, 0); } #door-trigger03:checked ~ .stage .door:nth-child(3) .door-body { transform: rotateY(-120deg); } </style> </head> <body> <input type="radio" name="door-trigger" id="door-trigger01"> <input type="radio" name="door-trigger" id="door-trigger02" checked> <input type="radio" name="door-trigger" id="door-trigger03"> <div class="stage"> <label for="door-trigger01" class="door"> <div class="door-back"> <div class="ilbuni"></div> </div> <div class="door-body"></div> </label> <label for="door-trigger02" class="door"> <div class="door-back"> <div class="ilbuni"></div> </div> <div class="door-body"></div> </label> <label for="door-trigger03" class="door"> <div class="door-back"> <div class="ilbuni"></div> </div> <div class="door-body"></div> </label> </div> </body> </html>
-
미해결
&A[0]+1과A[1]
#include<stdio.h> int main() { int A[][15] = { {1,2,3},{4,5,6},{7,8,9} }; printf("%p\n%p", &A[0] + 1, A[1]); } 여기서 &A[0]+1값과A[1]값이 같은 이유가 뭔가요 ? &A[0]=A[0]이어서&A[0] + 1=A[0]+1=&A[0][1]이 되는거 아닌가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
서버가 올라갔다는 메세지는 표시되는데 localhost:5000으로 접속이 안됩니다.
Example app listening at http://localhost:5000 MongoDB Connected... 이렇게 정상적으로 서버 올라갔다는 메세지는 나오는데 브라우져로 접근시 접근이 되지 않습니다(당연히 postman도 응답이 계속 오지않습니다) 어떻게 해야하나요? *app.use 함수를 주석처리하고 서버를 실행시켰을 경우, 정상적으로 접근이 됩니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
import가 안됩니다... 다른 질문자분들 다 참고했는데도 안되네요ㅠㅠ
windows를 사용 중이고 vscode를 사용하여 수업을 듣고있습니다. module_test.py에서 모듈 경로 삽입까지는 강사님과 똑같이 print되는 것을 확인했는데 그 뒤 작업인 import가 아무리해도 안되서 이렇게 끝내 글 올립니다. import test_module 이 자동완성안되는 건 어쩔 수 없다고 생각하고 직접 타이핑하면 밑줄이 생기며 예외 처리가 됩니다ㅠㅠ 절대경로로 from . import test_module 이렇게 적었을 때는 밑줄은 안생기는데, 실행시 확실히 에러가 뜨며 안됩니다. 비슷한 현상을 겪으신 분들의 답변 다 읽어보고 이것 저것 시도해보았는데.. 잘 안됩니다. 답변 부탁드릴게요.. 감사합니다
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
맥북 터미널 + 신탁스에러 봐주세요 ㅠ.,ㅜ
from math import * print(floor(4.99)) #소수점을 내림, 4 print(ceil(3.14) #소수점을 올림, 4 print(sqrt(16)) #제곱근, 4 터미널 내용 /Users/-----/Desktop/pythonworkspace/practice.py The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support.apple.com/kb/HT208050. -----ui-MacBook-Pro:~ -----$ python /Users/-----/Desktop/pythonworkspace/practice.py File "/Users/-----/Desktop/pythonworkspace/practice.py", line 79 print(sqrt(16)) #제곱근, 4 ^ SyntaxError: invalid syntax -----ui-MacBook-Pro:~ -----$ 맥북 프로 사용중입니다 파이썬은 처음 배워보는데 이런 경우는 무엇이 문제고 어떻게 해결할 수 있을까요? ㅠㅠ
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
궁금한게 있습니다!!
int main(void) 여기에 정의 하는해 구현하는 것 과 함수 void int main (.....) 여기에 구현하는 것이 어떤 차이가 있는지 궁금합니다. 추가로 cursor = arrayFish; 는 미션맨 = &철수; 미션맨 = &영희; 미션맨 = &민수; 와 같이 arrayFish의 주소값을 갖는 것인가요
-
미해결<M.B.I.T> 테스트 페이지 만들기! with Django
JSONField 추가 후 result 페이지에 값이 반영되지 않는 문제
안녕하세요. 막판에 질문이 많아지네요ㅠㅠ models.py의 Developer 모델에 JSONField 추가 후 result 페이지에서 값이 보이지 않는 문제가 발생합니다.(아래 화면) 모델 변경 후 makemigrations, migrate한 뒤에 data.json 변경하고 shell_plus 명령어로 backend.data 등의 데이터가 제대로 들어간 것은 확인했습니다. 그럼 데이터를 불러오는 부분이 문제가 아니라 불러온 데이터값을 화면에 찍는 과정에서 문제가 발생한 것 같은데 어떤 부분이 문제인지 모르겠습니다. models.py 부분은 아래와 같습니다. result.html {% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta property="og:title" content="MBIT" /> <meta property="og:image" content="" /> <meta property="og:url" content="" /> <meta property="og:description" content="나의 개발 유형은?" /> <title>MBTI 말고 MBIT</title> <link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'css/result.css' %}"> <script src="https://code.jquery.com/jquery-3.6.0.js"></script> <script type="text/javascript" src="{% static 'js/result.js' %}"></script> <script src="https://developers.kakao.com/sdk/js/kakao.js"></script> </head> <body> <section id="main_contents"> <div class="wrapper"> <div class="result"> <div class="titles"> <h3>{{developer.data.title}}</h3> <h1>{{developer.name}}</h1> </div> <div class="result_img"> <img src="{% static 'image/' %}{{ developer.pk}}.png" alt="frontend" /> </div> </div> <div class="result_explains"> <div class="explain"> <h3 class="title">나와 맞는 개발 유형은 {{developer.name}}!</h3> <ul> {% for feature in developer.data.features %} <li> {{ feature }} </li> {% endfor %} </ul> </div> <div class="explain"> <h3 class="title">{{ developer.name }}(이)가 뭐지?</h3> <ul> {% for description in developer.data.descriptions %} <li> {{ description }} </li> {% endfor %} </ul> </div> <div class="explain"> <h3 class="title">그래서 어떤 언어부터 공부해야 할까?</h3> <ul class="language_lists"> {% for language in developer.data.languages.list %} <li> <div class="img_wrap"> <img src="{% static '' %}{{ language.img }}" alt="{{ language.name }}"> </div> <h3>{{ language.name }}</h3> </li> {% endfor %} </ul> {% if data.languages.comments %} <ul> {% for comment in developer.data.languages.comments %} <li> {{ comment }} </li> {% endfor %} </ul> {% endif %} </div> </div> <div class="lectures"> <h3 class="title">강의 추천</h3> <p>{{ developer.name }} 공부를 시작하기 좋은 강의를 추천해 드릴게요!</p> <ul> {% for lecture in data.lectures %} <li> <a href="{{ lecture.url }}" target="_blank"> <img src="{% static '' %}{{ lecture.img }}" alt="{{ developer.lecture.name }}"> <h3>{{ lecture.name }}</h3> <button type="button">강의 보러가기</button> </a> </li> {% endfor %} </ul> </div> <div class="share"> <div class="url"> <button class="copy_btn" type="button">URL 복사하기</button> </div> <div class="facebook"> <button class="facebook_share" type="button">Facebook 공유하기</button> </div> <div class="kakao"> <button class="kakao_share" type="button">카카오톡 공유하기</button> </div> </div> <div class="buttons"> <ul> <li> <h3>...이건 내가 아니야... 잘못된 게 분명해!</h3> <a href="{% url 'main:index' %}"> <button type="button">테스트 다시 하기</button> </a> </li> <li> <h3>다른 사람들은 어떤 유형일까?</h3> <a href="#"> <button type="button">다른 결과 알아보기</button> </a> </li> <li> <h3>나는 얼마나 훈련해야 전문가가 될까?</h3> <a href="http://paullab.co.kr/10000hours.html"> <button type="button">1만 시간의 법칙</button> </a> </li> </ul> </div> </div> </section> </body> </html> 답변 기다리겠습니다ㅠㅠㅠㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
다중 for문
<script> function solution(n, k, card){ let answer = 0; for(let i=0; i<n; i++){ for(let j=0; j<n; j++){ for(let s=0; s<n; s++){ if(i !== j !== s){ console.log(card[i], card[j], card[s]); } else break; } } } return answer; } let arr=[13, 15, 34, 23, 45, 65, 33, 11, 26, 42]; console.log(solution(10, 3, arr)); </script> 이렇게 구현했을 때, i = j = s 인 경우가 찍히는 이유가 뭔지 알 수 있을까요?
-
미해결타입스크립트 시작하기
타입스크립트 사용하는 이유 : 높은 생산성
2분 37초 경에 name을 firstname 으로 바꿀때영 단축키 뭐 누르셨나요?? 그냥 수정 하게 되면 그냥 저기만 수정이 되더라구요 ㅠ
-
미해결스프링 핵심 원리 - 기본편
안녕하세요 영한님. 질문이 있습니다.
안녕하세요좋은강의 항상 감사드립니다. 질문이 있습니다.저는 현재 작은회사에서 Java Spring Boot로 Back-End개발일을 하고있습니다.저같은 경우는 규모가 작아서인지 설계를 제대로하지 않은채 빠르게 개발하는것에만 집중한다는 느낌을 많이 받습니다.강의중에 도메인 협력관계, 클래스 다이어그램, 객체 다이어그램등을 설계하시고 구현하시는데, 영한님의 회사에서는 어느정도 선까지 설계를 해놓고 구현하는지 궁금합니다.또, 영한님께서 설계하실때 사용하시는 툴도 어떤것을 사용하는지 궁금합니다.항상 감사합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
버츄얼 박스 설치 관련 문의 드립니다.
안녕하세요? 선생님! 버츄얼박스 설치 관련하여 문의 드립니다. 파일럿 환경 구성에서 버츄얼 박스 설치 내용으로 진행하였으나 버츄얼박스 5.0.40 버전은 다운로드가 안되어 5.1.0 버전을 설치했는데요. "이 앱은 이 장치에서 실행할 수 없습니다" 라고 나오네요. 무슨 문제인지는 모릅니다. 혹시 다른 버전의 버츄얼박스를 설치해야 되는지 문의 드리며, 다른 버전은 몇으로 설치하면 되는지요. 저는 개발자가 아니라 이런한 부분에 대해서 잘 해결할 수 없어 문의 드립니다. 시작한지 3일차된 수강생입니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
npm install -g sequelize-cli
안녕하세요 그랩님 npm install -g sequelize-cli가 안깔립니다ㅜ 혹시나 해서 global을 제외하고 npm install sequelize-cli로만 했더니 깔렸는데 이렇게 사용해도 괜찮은건가요? 에러코드 올려봅니다 매번 감사합니다 그랩님 npm ERR! code EACCES npm ERR! syscall symlink npm ERR! path ../lib/node_modules/sequelize-cli/lib/sequelize npm ERR! dest /usr/local/bin/sequelize npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules/sequelize-cli/lib/sequelize' -> '/usr/local/bin/sequelize' npm ERR! [OperationalError: EACCES: permission denied, symlink '../lib/node_modules/sequelize-cli/lib/sequelize' -> '/usr/local/bin/sequelize'] { npm ERR! cause: [Error: EACCES: permission denied, symlink '../lib/node_modules/sequelize-cli/lib/sequelize' -> '/usr/local/bin/sequelize'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'symlink', npm ERR! path: '../lib/node_modules/sequelize-cli/lib/sequelize', npm ERR! dest: '/usr/local/bin/sequelize' npm ERR! }, npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'symlink', npm ERR! path: '../lib/node_modules/sequelize-cli/lib/sequelize', npm ERR! dest: '/usr/local/bin/sequelize' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /Users/sumin/.npm/_logs/2021-06-08T10_23_16_558Z-debug.log sumin@192-168-1-117 grab-market-server % npm install -g sequelize-cli npm ERR! code EACCES npm ERR! syscall symlink npm ERR! path ../lib/node_modules/sequelize-cli/lib/sequelize npm ERR! dest /usr/local/bin/sequelize npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules/sequelize-cli/lib/sequelize' -> '/usr/local/bin/sequelize' npm ERR! [OperationalError: EACCES: permission denied, symlink '../lib/node_modules/sequelize-cli/lib/sequelize' -> '/usr/local/bin/sequelize'] { npm ERR! cause: [Error: EACCES: permission denied, symlink '../lib/node_modules/sequelize-cli/lib/sequelize' -> '/usr/local/bin/sequelize'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'symlink', npm ERR! path: '../lib/node_modules/sequelize-cli/lib/sequelize', npm ERR! dest: '/usr/local/bin/sequelize' npm ERR! }, npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'symlink', npm ERR! path: '../lib/node_modules/sequelize-cli/lib/sequelize', npm ERR! dest: '/usr/local/bin/sequelize' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /Users/sumin/.npm/_logs/2021-06-08T10_25_06_402Z-debug.log sumin@192-168-1-117 grab-market-server % npm install sequelize-cli npm WARN grab-market-server@1.0.0 No description npm WARN grab-market-server@1.0.0 No repository field. + sequelize-cli@6.2.0 added 72 packages from 46 contributors and audited 258 packages in 3.405s 5 packages are looking for funding run `npm fund` for details found 0 vulnerabilities